uni-app 微信分享在iOS中需要刷新一次执行能调起分享的问题处理

最近使用uni-app开发了一个在APP端和微信端同时使用的项目。

其中要实现分享到微信好友和朋友圈的功能,剩余的分享到QQ、钉钉等其他分享功能要隐藏。

开始直接引入了jweixin-1.6.0.js页面直接白屏报错,导致原有的数据都没有展示出来;

接着找到了找到了第三方组件库

 

下载

npm install jweixin-module --save

安装微信分享模块

安装完成后你会得到一个jweixin-module 的包,

然后

import wx from "@/jweixin-module/jweixin-module/lib/index.js"

在页面中引入模块

这部分在上篇文章里讲过,这里就不重复了

 

接着,

处理分享功能

又发现一个问题在微信分享在安卓中是合适的,但是在iOS中需要刷新一次执行能调起微信分享,

打开config里的debug模式,报错invalid signature,就是签名不可用。

并且需要隐藏的分享功能也没有隐藏掉。

 

 

查了好多资料,很多大神已经找到问题,是因为

 

IOS:每次切换路由,SPA的url是不会变的,发起签名请求的url参数必须是当前页面的url(就是最初进入页面时的url)

Android:每次切换路由,SPA的url是会变的,发起签名请求的url参数必须是当前页面的url(不是最初进入页面时的)

 

大神给出的答案是在接口请求时穿参传window.location.href.split('#')[0],而不是window.location.href

我试了试发现还是不行

 

接着想应该是iOS路由的问题,所以就用原生的页面跳转

在进入这个页面的时候把uni.navigateTo换成window.location.href

这里需要注意的是,window.location.href里的路径需要用全路径,包含域名的路径

 

测试,合适了

至此一个困扰好久的问题就解决了

 

posted @ 2020-10-10 09:34  烂笔头~  Views(2387)  Comments(0Edit  收藏  举报