前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【愚公系列】2022年03月 微信小程序-导航(功能页)

【愚公系列】2022年03月 微信小程序-导航(功能页)

作者头像
愚公搬代码
发布2022-12-01 09:16:45
4510
发布2022-12-01 09:16:45
举报
文章被收录于专栏:历史专栏

文章目录


前言

functional-page-navigator 组件:是一个非常强大的组件,用于跳转插件的功能页,主要的参数如下:

属性

类型

默认值

必填

说明

最低版本

version

string

release

跳转到的小程序版本,线上版本必须设置为 release

2.1.0

name

string

要跳转到的功能页

2.1.0

args

object

功能页参数,参数格式与具体功能页相关

2.1.0

bindsuccess

eventhandler

功能页返回,且操作成功时触发, detail 格式与具体功能页相关

2.1.0

bindfail

eventhandler

功能页返回,且操作失败时触发, detail 格式与具体功能页相关

2.1.0

bindcancel

eventhandler

因用户操作从功能页返回时触发

2.4.1

version的属性如下:

合法值

说明

develop

开发版

trial

体验版

release

正式版

name的属性如下:

合法值

说明

最低版本

loginAndGetUserInfo

用户信息功能页

2.1.0

requestPayment

支付功能页

2.1.0

chooseAddress

收货地址功能页

2.4.0

chooseInvoice

获取发票功能页

2.14.1

chooseInvoiceTitle

获取发票抬头功能页

2.14.1

要使用functional-page-navigator必须先激活相关地址:https://developers.weixin.qq.com/miniprogram/dev/framework/plugin/functional-pages.html

一、用户信息功能页

用户信息功能页用于帮助插件获取用户信息,包括 openid 和昵称等,相当于 wx.login 和 wx.getUserInfo 的功能。用户信息功能页使用 functional-page-navigator 进行跳转时,对应的参数 name 应为固定值loginAndGetUserInfo,其余参数与 wx.getUserInfo 相同,具体来说:

参数名

类型

必填

说明

withCredentials

Boolean

是否带上登录态信息

lang

String

指定返回用户信息的语言,zh_CN 简体中文,zh_TW 繁体中文,en 英文。默认为 en。

timeout

Number

超时时间,单位 ms

当 withCredentials 为 true 时,返回的数据会包含 encryptedData, iv 等敏感信息。

参数

类型

说明

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

加密算法的初始向量,详细见 加密数据解密算法

userInfo 参数说明:

参数

类型

说明

nickName

String

用户昵称

avatarUrl

String

用户头像,最后一个数值代表正方形头像大小(有 0、46、64、96、132 数值可选,0 代表 132*132 正方形头像),用户没有头像时该项为空。若用户更换头像,原有头像 URL 将失效。

gender

String

用户的性别,值为 1 时是男性,值为 2 时是女性,值为 0 时是未知

city

String

用户所在城市

province

String

用户所在省份

country

String

用户所在国家

language

String

用户的语言,简体中文为 zh_CN

二、相关案例

1.制作登录插件

登录插件目录结构

plugin.json

代码语言:javascript
复制
{
  "publicComponents": {
    "login": "components/login/login"
  },
  "main": "index.js"
}

login.js

代码语言:javascript
复制
// plugin/components/hello-component.js
Component({
  properties: {},
  data: {
    args: {
      withCredentials: true,
      lang: 'zh_CN'
    }
  },
  methods: {
    loginSuccess: function (res) {
      console.log(res.detail);
    },
    loginFail: function (res) {
      console.log(res);
    }
  }
});

login.wxml

代码语言:javascript
复制
<functional-page-navigator
  name="loginAndGetUserInfo"
  args="{{ args }}"
  version="develop"
  bind:success="loginSuccess"
  bind:fail="loginFail"
>
  <button class="login">登录到插件</button>
</functional-page-navigator>

project.config.json

代码语言:javascript
复制
{
  "miniprogramRoot": "miniprogram/",
  "pluginRoot": "plugin/",
  "compileType": "plugin",
  "setting": {
    "urlCheck": true,
    "es6": true,
    "enhance": true,
    "postcss": true,
    "preloadBackgroundData": false,
    "minified": true,
    "newFeature": true,
    "coverView": true,
    "nodeModules": false,
    "autoAudits": false,
    "showShadowRootInWxmlPanel": true,
    "scopeDataCheck": false,
    "uglifyFileName": false,
    "checkInvalidKey": true,
    "checkSiteMap": true,
    "uploadWithSourceMap": true,
    "compileHotReLoad": false,
    "lazyloadPlaceholderEnable": false,
    "useMultiFrameRuntime": true,
    "useApiHook": true,
    "useApiHostProcess": true,
    "babelSetting": {
      "ignore": [],
      "disablePlugins": [],
      "outputPath": ""
    },
    "useIsolateContext": false,
    "userConfirmedBundleSwitch": false,
    "packNpmManually": false,
    "packNpmRelationList": [],
    "minifyWXSS": true,
    "disableUseStrict": false,
    "minifyWXML": true,
    "showES6CompileOption": false,
    "useCompilerPlugins": false,
    "ignoreUploadUnusedFiles": true
  },
  "appid": "wx662e7b12440bd25e",
  "projectname": "loginAndGetUserInfo%20%E7%A4%BA%E4%BE%8B",
  "simulatorType": "wechat",
  "simulatorPluginLibVersion": {},
  "condition": {}
}

2.页面使用

app.json

代码语言:javascript
复制
{
  "pages": [
    "pages/index/index"
  ],
  "plugins": {
    "myPlugin": {
      "version": "dev",
      "provider": "wx662e7b12440bd25e"
    }
  },
  "sitemapLocation": "sitemap.json",
  "functionalPages": true
}

index.json

代码语言:javascript
复制
{
  "usingComponents": {
    "login": "plugin://myPlugin/login"
  }
}

index.html

代码语言:javascript
复制
<login />
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-03-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 前言
  • 一、用户信息功能页
  • 二、相关案例
    • 1.制作登录插件
      • 2.页面使用
      相关产品与服务
      访问管理
      访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档