最近使用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里的路径需要用全路径,包含域名的路径,