uni-app 抖音小程序分享设置path参数无效
uni-app 抖音小程序分享设置path参数无效
开发环境 | 版本号 | 项目创建方式 |
---|---|---|
Windows | win10 | HBuilderX |
### 示例代码:
```javascript
onShareAppMessage () {
return {
path: 'pages/pageA?b=1',
query: 'b=1'
}
}
操作步骤:
- 在抖音点击-分享-站内私信
- onShareAppMessage 设置
path
或者query
- 分享后在站内私信打开此分享链接
预期结果:
期望值为 {b:1}
实际结果:
pageA页面的onload参数显示为:{a:1}
bug描述:
使用uni-app打包的小程序,在抖音点击-分享-站内私信,onShareAppMessage
设置 path
或者 query
无效。onload
读取的参数为分享页面时当前页面的参数,而不是 onShareAppMessage
设置的参数。
例如:
- 当前页面为:
/pages/pageA?a=1
onShareAppMessage
:
onShareAppMessage () {
return {
path: 'pages/pageA?b=1',
query: 'b=1'
}
}
- 分享后无论用真机还是开发者工具
pageA
页面的onload
参数显示为:{a:1}
- 期望值为
{b:1}
另外,uni-app 打包的微信小程序则是正常的。
更多关于uni-app 抖音小程序分享设置path参数无效的实战教程也可以访问 https://www.itying.com/category-93-b0.html
3 回复
本问题时间较久,我测试抖音小程序,使用 onShareAppMessage 和 onLoad(query) 显示正常,未能复现问题。如果你有疑问,请开新贴进行提问。
在 uni-app 中开发抖音小程序时,如果你发现分享功能中的 path
参数无效,可能是由于以下几个原因导致的。以下是一些常见的排查和解决方法:
1. 检查 path
参数格式
path
参数应该是一个有效的页面路径,且必须以/
开头。例如:/pages/index/index
。- 确保路径拼写正确,且页面确实存在。
2. 检查页面路径是否在 pages.json
中注册
- 确保你要分享的页面路径已经在
pages.json
中正确注册。如果页面未注册,分享时路径会无效。
{
"pages": [
{
"path": "pages/index/index",
"style": { ... }
}
]
}
3. 检查 onShareAppMessage
方法
- 在页面的
onShareAppMessage
方法中,确保你正确设置了path
参数。
export default {
onShareAppMessage() {
return {
title: '分享标题',
path: '/pages/index/index', // 确保路径正确
imageUrl: 'https://example.com/image.png'
};
}
};
4. 抖音小程序的限制
- 抖音小程序可能对分享功能有一些特定的限制或要求。确保你使用的
path
参数符合抖音小程序的规范。 - 某些页面可能不允许被分享,或者分享时需要特定的权限。
5. 调试和日志
- 使用
console.log
打印path
参数,确保它在运行时是正确的。 - 在抖音开发者工具中查看控制台日志,检查是否有错误提示。
6. 抖音小程序版本问题
- 确保你使用的抖音小程序基础库版本是最新的,或者至少是支持分享功能的版本。
- 某些旧版本可能存在 bug 或功能不完善的情况。
7. 检查分享按钮的绑定
- 确保你正确绑定了分享按钮的点击事件,并且触发了
onShareAppMessage
方法。
<button open-type="share">分享</button>
8. 抖音小程序的分享限制
- 抖音小程序可能对分享的路径有一些限制,例如只能分享当前页面或特定页面。确保你分享的路径符合这些限制。
9. 检查抖音小程序的配置
- 在
manifest.json
中,确保抖音小程序的配置正确,特别是mp-toutiao
部分的配置。
{
"mp-toutiao": {
"appid": "your-appid",
"setting": {
"urlCheck": false
}
}
}
10. 抖音小程序的分享回调
- 如果你在分享后需要处理回调,确保你正确处理了
onShareAppMessage
的返回值。
export default {
onShareAppMessage() {
return {
title: '分享标题',
path: '/pages/index/index',
success(res) {
console.log('分享成功', res);
},
fail(err) {
console.error('分享失败', err);
}
};
}
};