一.现状:
.如官方所述:用户在朋友圈打开分享的小程序页面,并不会真正打开小程序,而是进入一个“小程序单页模式”的页面.同时禁用了wx.login和wx.hideShareMenu能力.
二.结果:
.个人认为:会导致[分享朋友圈]这一能力没有任何用途.
三.理由:
.大量应用场景是需要在微信用户打开小程序后跟踪和记录此分享的分享人.
.但在朋友圈中打开的单页模式的右上角也有[转发]和[分享到朋友圈]按钮.
如果微信用户通过这里进行二次转发和分享,因为禁用了wx.login能力,无法取到用户信息,则在触发页面代码中自定义的onShareAppMessage和onShareTimeline方法中无法传递当前转发或分享人信息.这样会导致由朋友圈中的单页模式发起的直接转发或分享,无法向后传递和跟踪记录转发或分享人.
.而同时单页模式又禁用了wx.hideShareMenu能力.使得开发者没有办法在此单页模式中进行判断动态禁用右上角的转发和分享按钮.
.最终使得开发者不得不放弃使用[分享到朋友圈]的能力!
四.建议:
1.在朋友圈中打开单面模式时,支持wx.hideShareMenu能力.
2.或者改为:在朋友圈中打开单面模式时,右上角就不要显示[转发]和[分享到朋友圈]按钮.这样就能实现用户只有点击[前往小程序]真正进入小程序后才可转发或分享.
问题已自己解决,解决方法:
var singlePage = false;
//1154:朋友圈内打开"单页模式"
if(wx.getLaunchOptionsSync().scene==1154){
singlePage = true;
}
Page({
...,
onShareTimeline: singlePage?false:function(){return {...}},//分享到朋友圈
onShareAppMessage: singlePage?false:function() {return {...}}//发送给朋友
});