本篇文章的目标是实现分享小程序中的单张页面给其他用户,并且打开分享后的页面拥有返回按钮.
最终的效果:
1. 封装一个分享的组件
<view class='share'>
<view class='like'>
<view class='iconfont icon-aixin'></view>
</view>
<view class='weixin'>
<button open-type="share" class='iconfont icon-weixin'></button>
</view>
</view>
页面效果如下:
说明:
如果想在页面上实现点击按钮分享,那么这个点击的按钮必须使用button标签,并且open-type置为share
2.在想要分享的页面中引入上面组件,并在页面的js中Page所包含的对象里增加一个方法onShareAppMessage
Page({
/**
* 页面的初始数据
*/
data: {
news_id:12
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
let url = encodeURIComponent('/packageNews/pages/news_detail/news_detail?news_id=' + this.data.news_id);
return {
title: "热点详情",
path:`/pages/index/index?url=${url}`
}
}
})
说明:
将当前页面的路径包括参数使用encodeURIComponent进行编码并作为url的参数,path设置为小程序的首页.当我们将该页面
分享给其他人时,他们打开的首先是首页,然后跳转到我们分享的这个页面.
3.要想分享后的页面打开先进入首页再跳转到分享的页面,首页的js要做如下设置
//index.js
Page({
data: {
},
onLoad: function (options) {
if(options.url){
let url = decodeURIComponent(options.url);
wx.navigateTo({
url
})
}
}
})
说明:
在onLoad的方法中先判断有没有url参数,如果有的话就使用decodeURIComponent对url解码然后跳转.由于小程序是先进入了首页然后跳转到分享页,这样便解决了分享页没有返回键的问题.