微信小游戏开发教程文档之进阶教程

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

白鹭引擎开发微信小游戏进阶教程文档

注意:

∙因为小游戏特殊机制,涉及到的小游戏接口主要逻辑都需要写在小游戏逻辑代码内,但是可以通过Egret 代码来调用

∙后续版本Egret 将会提供调用小游戏接口模板,届时大家可以参照模板编写代码。文件系统

文件系统有两类文件:代码包文件和本地文件。

代码包文件

代码包文件指的是在项目目录中添加的文件。由于代码包文件大小限制,代码包文件适用于放置首次加载时需要的文件,对于内容较大或需要动态替换的文件,不推荐用添加到代码包中,推荐在小程序启动之后再用下载接口下载到本地。

访问代码包文件

代码包文件的访问方式是从项目根目录开始写文件路径。

修改代码包文件

代码包内的文件无法在运行后动态修改或删除,修改代码包文件需要重新发布版本。

本地文件

本地文件指的是小程序被用户添加到手机后,会有一块独立的文件存储区域,以用户维度隔离。即同一台手机,每个微信用户不能访问到其他登录用户的文件,同一个用户不同appId 之间的文件也不能互相访问。

本地文件的文件路径均为以下格式:

1.{{协议名}}://文件路径

其中,协议名在iOS/Android 客户端为“wxfile”,在开发者工具上为“http”,开发者无需关注这个差异,也不应在代码中去硬编码完整文件路径。

本地临时文件

本地临时文件只能通过调用特定接口产生,不能直接写入内容。本地临时文件产生后,仅在当前生命周期内有效,重启之后即不可用。因此,不可把本地临时文件路径存储起来下次使

用。如果需要下次在使用,可通过saveFile 或copyFile 接口把本地临时文件转换成本地存储文件或本地用户文件。

示例

1.wx.chooseImage({

2.success(res){

3.const tempFilePaths =res.tempFilePaths // tempFilePaths 的每一项是一

个本地临时文件路径

4.}

5.})

本地缓存文件

本地存储文件只能通过调用特定接口产生,不能直接写入内容。本地缓存文件产生后,重启之后仍可用。本地缓存文件只能通过saveFile 接口将本地临时文件保存获得。

示例

1.wx.saveFile({

2.tempFilePath:'',// 传入一个本地临时文件路径

3.success(res){

4.console.log(res.savedFilePath)// res.savedFilePath 为一个本地缓存文件路

5.}

6.})

本地缓存文件是最初的设计,1.7.0 版本开始,提供了功能更完整的本地用户文件,可以完全覆盖本地缓存文件的功能,如果不需要兼容低于1.7.0 版本,可以不使用本地缓存文件。

本地用户文件

本地用户文件是从1.7.0 版本开始新增的概念。我们提供了一个用户文件目录给开发者,开发者对这个目录有完全自由的读写权限。通过ER_DATA_PATH 可以获取到这个目录的路径。

示例

1.// 在本地用户文件目录下创建一个文件a.txt,写入内容"hello, world"

2.const fs =wx.getFileSystemManager()

3.fs.writeFileSync(`${ER_DATA_PATH}/hello.txt`,'hello, world','utf8')

读写权限

用户登陆签名

小程序的一部分后台(HTTP)接口要求验证用户登录态。开发者在调用时需提供以

session_key为密钥生成的签名。其中session_key是指通过wx.login 获得的登录态。

签名算法

目前支持的签名算法是hmac_sha256。对于POST请求,开发者生成签名的算法是:

1.signature =hmac_sha256(post_data,session_key )

其中post_data为本次POST请求的数据包。特别地,对于GET请求,post_data等于长度为0的字符串。

1.signature =hmac_sha256("",session_key )

签名示例

例如开发者需要请求的HTTP(POST)接口,其中请求包为一个json字符串。

1.curl -d '{"foo":"bar"}''https:///some_api?access_token=xxx&op

enid=xxx&signature=???&sig_method=hmac_sha256'

开发者需要计算出signature参数。假设用户当前有效的session_key 为:

1.'o0q0otL8aEzpcZL/FT9WsQ=='

则开发者生成签名应该是

1.hmac_sha256('{"foo":"bar"}','o0q0otL8aEzpcZL/FT9WsQ==')=654571f79995b2c

e1e149e53c0a33dc39c0a74090db514261454e8dbe432aa0b

开发者服务器发起的HTTP请求

1.curl -d '{"foo":"bar"}''https:///some_api?access_token=xxx&op

enid=xxx&signature=654571f79995b2ce1e149e53c0a33dc39c0a74090db5142614 54e8dbe432aa0b&sig_method=hmac_sha256'

相关文档
最新文档