珠海网站建设网珠海网站建设公司 - 品牌建站
只帮客户做赚钱的营销型企业网站,让企业主轻轻松松赚钱!

在中国,有 06815 家企业正在使用我们提供的各项服务!

【微信小程序】插件开发功能和小程序基础库文档

发布时间:2018-06-22阅读次数:1288来源:珠海网站建设网 [ 网讯互联 ][ 微信小程序 ] [ 我要投稿 ]

微信小程序】插件开发功能文档对微信小程序开发者可开发完整的插件页面,并具有微信分享、页面跳转等能力【微信小程序开发电话:400-000-1280】便于插件开发者在插件内提供完整的服务流程、同时可便捷地被其他小程序接入使用。

【微信小程序】插件开发功能文档:微信小程序定制开发电话:400-000-1280

【微信小程序】插件开发功能文档:微信小程序定制开发电话:400-000-1280


插件功能页

插件功能页从小程序基础库版本 2.1.0 开始支持。

插件不能直接调用 wx.login 等较为敏感的接口。在需要访问一些敏感接口时,可以使用插件功能页的方式。使用插件功能页可以实现以下这些功能:

  • 获取用户信息,包括 openid 和昵称等(相当于 wx.login 和 wx.getUserInfo 的功能)。
  • 支付(相当于 wx.requestPayment )。

需要注意的是:插件使用支付功能,需要进行额外的权限申请,申请位置位于管理后台的“小程序插件 -> 基本设置 -> 支付能力”设置项中。另外,无论是否通过申请,主体为个人小程序在使用插件时,都无法正常使用插件里的支付功能。

在具体使用功能页时,插件可以在插件的自定义组件中放置一个 <functional-page-navigator> 组件,用户在点击这个组件区域时,可以跳转到一个固定的页面,允许用户执行登录或其他操作。

激活功能页特性

功能页是 插件所有者小程序 中的一个特殊页面。

插件所有者小程序,指的是与插件 AppID 相同的小程序。例如,“小程序示例”小程序开发了一个“小程序示例插件”,无论这个插件被哪个小程序使用,这个插件的插件所有者小程序都是“小程序示例”。

启用插件功能页时,需要在插件所有者小程序 app.json 文件中添加 functionalPages 定义段,其值为 true 。

{ "functionalPages": true }

注意,新增或改变这个字段时,需要这个小程序发布新版本,才能在正式环境中使用插件功能页。

跳转到功能页

在插件需要登录时,可以在插件的自定义组件中放置一个 <functional-page-navigator> 组件。

代码示例:

<functional-page-navigator name="loginAndGetUserInfo" args="" version="develop" bind:success="loginSuccess"> <button>登录到插件</button> </functional-page-navigator> 

用户在点击这个区域时,会自动跳转到插件所有者小程序的功能页。功能页会提示用户进行登录或其他相应的操作。操作结果会以组件事件的方式返回。

具体用法和支持的功能页列表详见 组件说明 。

目前,功能页的跳转目前不支持在开发者工具中调试,请在真机上测试。

功能页函数

在使用支付功能页时,插件所有者小程序需要提供一个函数来响应支付请求。这个响应函数应当写在小程序根目录中的 functional-pages/request-payment.js 文件中,名为 beforeRequestPayment 。如果不提供这段代码,将通过 fail 事件返回失败。

注意:功能页函数不应 require 其他非 functional-pages 目录中的文件,其他非 functional-pages 目录中的文件也不应 require 这个目录中的文件。这样的 require 调用在未来将不被支持。

代码示例:

// functional-pages/request-payment.js exports.beforeRequestPayment = function(paymentArgs, callback) {
  paymentArgs // 就是 functional-page-navigator 的 args 属性中 paymentArgs // 在这里可以执行一些支付前的参数处理逻辑,包括通知后台调用统一下单接口 // 在 callback 中需要返回两个参数: err 和 requestPaymentArgs // err 应为 null (或者一些失败信息) // requestPaymentArgs 将被用于调用 wx.requestPayment callback(null, { // 这里的参数与 wx.requestPayment 相同,除了 success/fail/complete 不被支持 timeStamp: timeStamp,
    nonceStr: nonceStr,
    package: package,
    signType: signType,
    paySign: paySign,
  })
}

这个目录和文件应当被放置在插件所有者小程序代码中(而非插件代码中),它是插件所有者小程序的一部分(而非插件的一部分)。 如果需要新增或更改这段代码,需要发布插件所有者小程序,才能在正式版中生效;需要重新预览插件所有者小程序,才能在开发版中生效。

Bugs & Tips

  • Bug:在微信版本 6.6.7 中,功能页被拉起时会触发 App 的部分生命周期并使得功能页启动时间变得比较长。在后续的微信版本中这一行为会发生变更,使 App 生命周期不再被触发。



兼容

小程序的功能不断的增加,但是旧版本的微信客户端并不支持新功能,所以在使用这些新能力的时候需要做兼容。

文档会在组件,API等页面描述中带上各个功能所支持的版本号。

可以通过 wx.getSystemInfo 或者 wx.getSystemInfoSync 获取到小程序的基础库版本号。

也可以通过 wx.canIUse 详情 来判断是否可以在该基础库版本下直接使用对应的API或者组件

兼容方式 - 版本比较

微信客户端和小程序基础库的版本号风格为 Major.Minor.Patch(主版本号.次版本号.修订号)。 开发者可以根据版本号去做兼容,以下为参考代码:

function compareVersion(v1, v2) {
  v1 = v1.split('.')
  v2 = v2.split('.') var len = Math.max(v1.length, v2.length) while (v1.length < len) {
    v1.push('0')
  } while (v2.length < len) {
    v2.push('0')
  } for (var i = 0; i < len; i++) { var num1 = parseInt(v1[i]) var num2 = parseInt(v2[i]) if (num1 > num2) { return 1 } else if (num1 < num2) { return -1 }
  } return 0 }

compareVersion('1.11.0', '1.9.9') // 1 

兼容方式 - 接口

对于新增的 API,可以用以下代码来判断是否支持用户的手机。

if (wx.openBluetoothAdapter) {
  wx.openBluetoothAdapter()
} else { // 如果希望用户在最新版本的客户端上体验您的小程序,可以这样子提示 wx.showModal({
    title: '提示',
    content: '当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。' })
}

兼容方式 - 参数

对于 API 的参数或者返回值有新增的参数,可以判断用以下代码判断。

wx.showModal({
  success: function(res) { if (wx.canIUse('showModal.cancel')) { console.log(res.cancel)
    }
  }
})

兼容方式 - 组件

对于组件,新增的组件或属性在旧版本上不会被处理,不过也不会报错。如果特殊场景需要对旧版本做一些降级处理,可以这样子做。

Page({
  data: {
    canIUse: wx.canIUse('cover-view')
  }
})
<video controls="{{!canIUse}}"> <cover-view wx:if="{{canIUse}}">play</cover-view> </video>



functional-page-navigator

这个组件从小程序基础库版本 2.1.0 开始支持。

仅在插件的自定义组件中有效,用于跳转到插件功能页。

属性名 类型 默认值 说明 最低版本
version String release 跳转到的小程序版本,有效值 develop(开发版),trial(体验版),release(正式版) ,仅在当前小程序为开发版或体验版时此参数有效;如果当前小程序是体验版或正式版,则打开的小程序必定是正式版 2.1.0
name String 要跳转到的功能页 2.1.0
args Object null 功能页参数,参数格式与具体功能页相关 2.1.0
bindsuccess EventHandle 功能页返回,且操作成功时触发, detail 格式与具体功能页相关 2.1.0
bindfail EventHandle 功能页返回,且操作失败时触发, detail 格式与具体功能页相关 2.1.0

name 有效值:

说明 接受的 args success 返回的 detail fail 返回的 detail 最低版本
loginAndGetUserInfo 获取用户信息,对应 wx.login 和 wx.getUserInfo 与 wx.getUserInfo接受的 args 相同(除回调函数外) wx.login 和 wx.getUserInfo 的结果的并集 与 wx.login 或 wx.getUserInfo 相同 2.1.0
requestPayment 支付,对应 wx.requestPayment fee 字段,表示需要显示在页面中的金额,单位为分; paymentArgs 字段,任意数据,传递给功能页中的响应函数 与 wx.requestPayment相同 与 wx.requestPayment相同 2.1.0

示例代码:

<!-- sample.wxml --> <functional-page-navigator name="loginAndGetUserInfo" bind:success="loginSuccess"> <button>登录到插件</button> </functional-page-navigator> 
// redirect.js navigator.js Component({
  methods: {
    loginSuccess: function(e) { console.log(e.detail.code) // wx.login 的 code console.log(e.detail.userInfo) // wx.getUserInfo 的 userInfo }
  }
})

Tips:

  • 功能页是插件所有者小程序中的一个特殊页面,开发者不能自定义这个页面的外观。
  • 在功能页展示时,一些与界面展示相关的接口将被禁用(接口调用返回 fail )。
  • 这个组件本身可以在开发者工具中使用,但功能页的跳转目前不支持在开发者工具中调试,请在真机上测试。


以上内容由珠海网站建设(网讯互联)为您提供!更多有关网站建设网站设计网站制作微信营销微官网手机网站建设营销型网站建设微信小程序等互联网应用服务都可以联系我们!建站热线:400-000-1280

您想咨询企业网站建设流程和报价吗?
您是否有考虑过打造赚钱营销型企业网站
移动互联网+都这么热门了,您还没有4G手机网站吗?
您想要让您的产品和服务出现在搜索引擎首页吗?
您想获得企业网站整体运营推广解决方案吗?
不说了~ 拿起手机扫码沟通,您懂得! ^_^
珠海网站建设公司微信二维码
嘚啵嘚啵一句:加微信时请告知尊姓大名
本文关键词:微信小程序插件
本文链接:http://www.zhgov.com/webnews/580.html
      珠海网站建设网,微信小程序/企业网站建设综合服务平台
  • 您只需要告诉我们需要什么样的产品,网讯互联团队将为您打造一站式互联网综合应用平台!
立即咨询在线客服

网站建设

为什么要选择网讯互联

工商实名验证
证照齐全 正规公司 诚信经营
公平交易 满意后付款
价格公开透明 倡导理性消费
无风险,免费ICP备案
开具正规发票 免费网站备案
无风险,全额退款
没有有效稿件 承诺全额退款
      网讯互联企业邮箱
  • 请将#换成@
web#zhgov.com
首页 | 关于我们 | 新闻中心 | 支付方式 | 我要加盟 | 我要爆料 | 我要合作 | 我要做网站 | 我要备案 | 网站地图 | 友情链接 | 在线客服 | 联系方式
Copyright © 2007-2018 珠海市网讯互联信息科技有限公司 [ 珠海网站建设网 ] www.zhgov.com , All Rights Reserved. TAGS 新闻地图
【珠海网站建设网】企业网站建设、网站制作、网站设计、营销型网站建设、外贸网站制作、手机网站制作、微信营销、微官网、微信小程序、云主机等服务提供商 ^_^
联系地址:广东省珠海市香洲区香海路129号 咨询电话:133-9295-6503(一按帮您) 传真:0756-3130945 业务邮箱:[ 马上写信咨询 ] 业务QQ:79535318
工商注册号工业和信息化部粤ICP备12038494号粤公网安备 44040202000391号 众信验证 百度信誉V官网认证 安全联盟实名验证