zoukankan      html  css  js  c++  java
  • 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里的路径需要用全路径,包含域名的路径,

  • 相关阅读:
    洛谷 P6295
    洛谷 P4240
    洛谷 P3287
    My rating is 1064.
    洛谷 P5071
    C语言 #include <> 与 #include “” 区别
    C语言 #pragma once
    C语言 typedef 和 define 区别
    C语言 define 定义函数(多行书写)
    C语言 define 定义函数
  • 原文地址:https://www.cnblogs.com/yeziyou/p/13790261.html
Copyright © 2011-2022 走看看