是的,小程序从朋友圈打开时,会进入「单页模式(browseOnly)」,大量常用 API 与方法会被限制、无法执行微信开放社区。这是微信官方的硬性限制,目的是防止营销诱导、保障用户体验微信开放社区。
onLoad(options) {
const scene = options.scene;
const isFromTimeline = scene === 1154; // 朋友圈打开(单页模式)
this.setData({ isSinglePage: isFromTimeline });
}
4. 样式与导航适配
在页面 .json 中配置单页模式导航:
json
{
"singlePage": {
"navigationBarFit": "squeezed" // 避免自定义导航栏错位
}
}
1. 开启分享菜单(必须)
在页面 onLoad 中调用,让右上角菜单显示「分享到朋友圈」选项:
javascript
运行
onLoad(options) {
// 显示分享菜单:包含「发送给朋友」和「分享到朋友圈」
wx.showShareMenu({
withShareTicket: true,
menus: ['shareAppMessage', 'shareTimeline']
})
}
2. 实现分享给朋友(前置条件)
javascript
运行
// 分享给好友/群聊(必须实现,否则朋友圈分享不生效)
onShareAppMessage() {
return {
title: '分享标题',
path: '/pages/index/index', // 页面路径,必须以 / 开头
imageUrl: '/images/share.png' // 分享图,建议 500×400
}
}
3. 实现分享到朋友圈(核心)
// 分享到朋友圈
onShareTimeline() {
return {
title: '朋友圈专属标题', // 朋友圈卡片标题
query: 'from=pyq&xxx=123', // 自定义参数,朋友圈打开时可通过 options 获取
imageUrl: '/images/share-timeline.png' // 朋友圈缩略图,建议正方形
}
}
// 2. 新增分享到朋友圈的核心函数
onShareTimeline() {
let sharePath = `/pages/index/index`;
var title = this.data.config.xcxIndexName;
var imageUrl = baseURL + this.data.config.xcxIndexImgUrl;
return {
// 朋友圈分享标题(会显示在朋友圈卡片下方)
title:title,
// 朋友圈分享路径(好友点击后进入的页面)
path: sharePath,
// 朋友圈分享图片(优先级:自定义图 > 商品图 > 小程序默认图)
imageUrl: imageUrl
}
}
站长微信:xiaomao0055
站长QQ:14496453