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

20 回复

有木有管理来确认下。

更多关于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: 好的

我是app lunch初始化config,其他页面要分享的直接share

我也出现过这个问题,吧路由改一下 history 改成hash 然后就可以获取到正确的url了

路由?

什么意思

这个问题是iOS微信环境下H5路由模式的常见问题。原因在于uni-app默认使用hash路由模式,而iOS微信JSSDK会忽略hash部分,导致分享时始终获取首页URL。

解决方案:

  1. 在manifest.json中配置使用history路由模式:
"h5": {
  "router": {
    "mode": "history"
  }
}
  1. 确保服务器已正确配置history路由回退(nginx示例):
location / {
  try_files $uri $uri/ /index.html;
}
  1. 在分享代码中手动指定当前页面的完整URL:
wx.updateAppMessageShareData({
  title: '分享标题',
  desc: '分享描述',
  link: window.location.href,
  imgUrl: '分享图标'
});
回到顶部