MPVue 框架中小程序小程序页面和 web-view 跳转页面的转发功能实现。
基础
小程序转发分享功能,依赖于 onShareAppMessage API。
从官方文档看,它使用方法如下:
1 | Page({ |
当点击页面内的转发按钮或右上角的转发菜单时,该函数会被调用,读取相关的配置,返回一个对象作为分享内容的配置,参数如下:
- title 转发时显示的标题 默认为小程序名称
- path 转发路径 默认为当前页的path 必须是以/开头的完整路径
- imageUrl 自定义分享图片,支持PNG和JPG格式,显示图片长宽比为5:4 默认使用当前页面截图
该回调函数可接收1个参数,可以从该参数中读取 web-view 页面的url。
原生小程序web-view转发
原理:web-view 的 src 属性设置为动态的。在页面载入时获取分享出去的 path
,读取上面的 options
字段,类似 URL 的 search
字段,获取需要的参数。再拼接至当前小程序页面的地址后,重置 web-view 的 src 值。
wxml
1 | <view class="container"> |
js
1 | Page({ |
MPVue中转发
MPVue中转发基本和原生小程序一致。
web-view页面中有如下差异:
- 小程序通过
getCurrentPages
获取应用的页面栈。再获取当前页面和当前页面的查询参数。而MPVue中则使用this.$root.$mp.query
获取查询参数对象。
代码示例
1 | <template> |
展望
早上看了下 Taro 的介绍,打算将小程序技术栈,转至 Taro了,还可以顺便学学 React。