真机开发测试的常规步骤目前,功能页的跳转目前不支持在开发者工具中调试,请在真机上测试。初次进行真机开发测试时,通常步骤如下: - 在开发者工具上打开插件所有者小程序项目,并点击“预览”;
- 用测试用的真机扫一下预览二维码,此时会进入插件所有者小程序,进入后就可以直接退出这个小程序;
- 在开发者工具上打开插件项目,将插件中 functional-page-navigator 中的 version 属性设置为 develop;
- 点击预览可以生成插件预览二维码,用测试用的真机扫码即可预览功能页;如果更改了插件代码,重新生成并扫描插件的预览二维码即可;
- 如果过了一段时间之后,跳转功能页时出现“开发版已过期”这样的提示,从第1步开始重试一次。
注意:functional-page-navigator 的 version=develop 仅用于调试,因此在插件提审前,需要: - 确保已发布设置了 "functionalPages": true 的插件所有者小程序;
- 确保所有的 functional-page-navigator 组件属性设置为 version="release" 。
功能页常见问题 FAQ如何正确编辑插件所有者小程序?- 应该在开发者工具的“小程序”类型项目中编辑,而不是在“插件”类型的项目中编辑。比如,“小程序示例插件”的所有者小程序是“小程序示例”,它们的 AppID 都是 wxidxxxxxxxxxxxxxx ,如果是初次开发“小程序示例”小程序,可以在开发者工具中创建一个小程序项目,其 AppID 为 wxidxxxxxxxxxxxxxx ;如果之前开发过“小程序示例”小程序,直接打开之前的小程序项目即可。
点击 functional-page-navigator 之后没有任何反应。- 请检查引用插件的小程序和插件本身是不是同一个 AppID ,如果是,跳转到自己的功能页需要基础库 2.4.0 支持,否则使用 functional-page-navigator 不会有任何反应。
点击 functional-page-navigator 之后,展示了一个页面提示“页面不存在”。- 这种情况是因为插件所有者小程序没有正确设置 "functionalPages": true 。如果 functional-page-navigator 的 version="develop" ,这部手机需要扫码并进入插件所有者小程序一次;如果 version="release" ,请确保包含 "functionalPages": true 的插件所有者小程序已被发布。
点击 <functional-page-navigator version="develop"> 之后,弹窗提示“小程序开发版已过期”。- 遇到这种情况,重新扫码并进入插件所有者小程序一次即可。
点击 <functional-page-navigator name="requestPayment"> 之后,展示了一个页面提示“该功能无法使用”。- 在使用插件功能页时,小程序不能是个人小程序,同时,插件也需要额外的步骤申请开通插件支付权限(位于 管理后台 -> 小程序插件 -> 基本设置 -> 支付能力 )。
点击 <functional-page-navigator name="requestPayment"> 之后,点击页面中的“支付”按钮,立刻退出了支付功能页。- 这通常是因为没有找到功能页函数 beforeRequestPayment ,请检查插件所有者小程序的 functional-pages/request-payment.js 文件和其中的 beforeRequestPayment 函数是否存在。
点击 functional-page-navigator 之后,展示了一个仅有返回按钮的页面。- 请检查 functional-page-navigator 的 name 属性是否被正确设置。
开发版可以正常跳转,但审核反馈不能跳转。- 请发布设置了 "functionalPages": true 的插件所有者小程序,且所有的 functional-page-navigator 组件属性设置为 version="release" 。
Bugs & Tips- 功能页是插件所有者小程序中的一个特殊页面,开发者不能自定义这个页面的外观。
- 插件所有者小程序本身也可以引用这个插件,此时,functional-page-navigator 组件的 version 属性将不会生效,而是取决于当前运行的插件所有者小程序的版本。
- functional-page-navigator 可以在开发者工具中使用,但功能页的跳转目前不支持在开发者工具中调试,请在真机上测试。
- Bug:在微信版本 6.6.7 中,功能页被拉起时会触发 App 的部分生命周期并使得功能页启动时间变得比较长。在后续的微信版本中这一行为会发生变更,使 App 生命周期不再被触发。
用户信息功能页用户信息功能页用于帮助插件获取用户信息,包括 openid 和昵称等,相当于 wx.login 和 wx.getUserInfo 的功能。 此外,自基础库版本 2.3.1 起,用户在这个功能页中授权之后,插件就可以直接调用 wx.login 和 wx.getUserInfo 。无需再次进入功能页获取用户信息。自基础库版本 2.6.3 起,可以使用 wx.getSetting 来查询用户是否授权过。 调用参数用户信息功能页使用 functional-page-navigator 进行跳转时,对应的参数 name 应为固定值 loginAndGetUserInfo,其余参数与 wx.getUserInfo 相同,具体来说: args参数说明: 参数名 | 类型 | 必填 | 说明 |
---|
withCredentials | Boolean | 否 | 是否带上登录态信息 | lang | String | 否 | 指定返回用户信息的语言,zh_CN 简体中文,zh_TW 繁体中文,en 英文。默认为en。 | timeout | Number | 否 | 超时时间,单位 ms |
注:当 withCredentials 为 true 时,返回的数据会包含 encryptedData, iv 等敏感信息。 bindsuccess返回参数说明: 参数 | 类型 | 说明 |
---|
code | String | 同 wx.login 获得的用户登录凭证(有效期五分钟)。开发者需要在开发者服务器后台调用 api,使用 code 换取 openid 和 session_key 等信息 | errMsg | String | 调用结果 | userInfo | OBJECT | 用户信息对象,不包含 openid 等敏感信息 | rawData | String | 不包括敏感信息的原始数据字符串,用于计算签名。 | signature | String | 使用 sha1( rawData + sessionkey ) 得到字符串,用于校验用户信息,参考文档 signature。 | encryptedData | String | 包括敏感数据在内的完整用户信息的加密数据,详细见加密数据解密算法 | iv | String | 加密算法的初始向量,详细见加密数据解密算法 |
|