uni-app H5 微信JSSDK分享在ios下无法分享当前页面
uni-app H5 微信JSSDK分享在ios下无法分享当前页面
详细问题描述
IOS 下打开H5页面首页,经过多级跳转到文章详情页,调用JSSDK分享到朋友圈,打开的页面却是首页,测试发现详情页的URL一直都是首页的,并没有因为跳转到其他pages页下而改变。而安卓版微信正常。
uniAPP H5版本同样是这个问题。
(DCloud产品不会有明显的bug,所以你遇到的问题大都是在特定环境下才能重现的问题,请仔细描述你的环境和重现方式,否则DCloud很难排查解决你的问题)
[内容]
重现步骤
[步骤]
[结果]
[期望]
[如果语言难以表述清晰,拍一个视频或截图,有图有真相]
IDE运行环境说明
项目 | 信息 |
---|---|
IDE版本号 | [IDE版本号] |
windows版本号 | [windows版本号] |
mac版本号 | [mac版本号] |
uni-app运行环境说明
项目 | 信息 |
---|---|
运行端是h5或app或某个小程序? | [运行端是h5或app或某个小程序?] |
运行端版本号 | [运行端版本号] |
项目是cli创建的还是HBuilderX创建的?如果是cli创建的,请更新到最新版cli再试 | [项目是cli创建的还是HBuilderX创建的?如果是cli创建的,请更新到最新版cli再试] |
编译模式是老模板模式还是新的自定义组件模式? | [编译模式是老模板模式还是新的自定义组件模式?] |
App运行环境说明
项目 | 信息 |
---|---|
Android版本号 | [Android版本号] |
iOS版本号 | [iOS版本号] |
手机型号 | [手机型号] |
模拟器型号 | [模拟器型号] |
附件
[IDE问题请提供HBuilderX运行日志。菜单帮助-查看运行日志,点右键打开文件所在目录,将log文件压缩成zip包上传]
[App问题请提供可重现问题的代码片段,你补充的细一点,问题就解决的快一点]
[App安装包或H5地址]
[可重现代码片段]
联系方式
[QQ]
更多关于uni-app H5 微信JSSDK分享在ios下无法分享当前页面的实战教程也可以访问 https://www.itying.com/category-93-b0.html
有木有管理来确认下。
更多关于uni-app H5 微信JSSDK分享在ios下无法分享当前页面的实战教程也可以访问 https://www.itying.com/category-93-b0.html
顶下。。。
提供一下测试链接和复现步骤
你可以在微信里打开 uniAPP H5版。 https://uniapp.dcloud.io/h5 。然后用安卓手机和IOS 同时打开 【模板】-【多列选择】–然后分享。你就能看到结果了。分享效果看我下面回帖
回复 c***@foxmail.com:hello uni-app 示例并未使用 JSSDK,行为不同是微信浏览器差异和 JSSDK 没有关系。
ios微信获取地址确实是有点问题的,但是jssdk分享的url,是你自己传入的参数,应该是你获取地址的姿势不对 。
jssdk的作用只是可以自定义分享标题、内容和说明。与jssdk其实没什么很大关系。主要是ios地址的url没有跟着变。就是你在jssdk里设置了正确的页面地址,但是url上不正确还是无效。 wx.onMenuShareWeibo({ title: ‘’, // 分享标题 desc: ‘’, // 分享描述 link: ‘’, // 分享链接 必须与URL连接一直才可以分享当前页,否则分享无效 }
回复 c***@foxmail.com: 安卓和IOS就不同,这两个平台对比也说明不了什么。我已经成功使这个jssdk实现过安卓和IOS微信内的分享。 你那里不成功,应该是写的有问题。 分享链接是你自己传入的,正常就是location.href,如果传入的和当前页面地址不一致,并不会分享无效,而是签名错误 ,走默认的分享。
回复 c***@foxmail.com: 另外,你说的那个官方实例,它并没有使用jssdk,所以是微信默认分享,至于为什么默认分享的是首页(其实也不完全是首页,刷新一下应该也可分享当前页),那是spa单页应用在ios版微信上存在的问题,包括公众号支付,授权目录一样存在这个问题。 你那个很可能是没有在每个页面都单独初始次一次sdk配置
回复 程咬金3斧头: 能不能瞅一眼h5分享微信的代码
同样在微信分享的是 uniAPP H5版(https://uniapp.dcloud.io/h5 )。用安卓手机和IOS 同时打开 【模板】-【多列选择】–然后分享
安卓的分享效果
IOS的分享效果。一直都是首页链接。
hello uni-app 示例并未使用 JSSDK,行为不同是微信浏览器差异和 JSSDK 没有关系。
回复 DCloud_UNI_GSQ: 那需要分享当前页,ios怎么处理
回复 1***@qq.com: 使用 JSSDK
回复 DCloud_UNI_GSQ: 好的
我也出现过这个问题,吧路由改一下 history 改成hash 然后就可以获取到正确的url了
路由?
什么意思
这个问题是iOS微信环境下H5路由模式的常见问题。原因在于uni-app默认使用hash路由模式,而iOS微信JSSDK会忽略hash部分,导致分享时始终获取首页URL。
解决方案:
- 在manifest.json中配置使用history路由模式:
"h5": {
"router": {
"mode": "history"
}
}
- 确保服务器已正确配置history路由回退(nginx示例):
location / {
try_files $uri $uri/ /index.html;
}
- 在分享代码中手动指定当前页面的完整URL:
wx.updateAppMessageShareData({
title: '分享标题',
desc: '分享描述',
link: window.location.href,
imgUrl: '分享图标'
});