Vue historyルーティングモード微信カスタム共有まとめ

1871 ワード

以前からhashモードを使用していたので、AndroidでもiOSでも署名を1回取得し、共有を構成するページをwxにするのは簡単でした.readyのコールバックで共有の論理を記述すればよい.
以前はhashモードで問題なかったのですが、最近微信がアップグレードされた後、Android側の微信が許可された後にリダイレクトしてもページが更新されず、ユーザーの許可情報を取得できなかったのかもしれません.長い間試してからルーティングをhistoryモードに変更して解決しました.しかしhistoryモードにも多くの厄介な問題があり、共有はその一つです.
ネットで多くの文章を調べたが、多くは点から点までだった.AndroidとiOSの署名取得に失敗した問題について説明しました.簡単に言えば、iOSのマシンでは、署名を取得するには最初に入ったアドレスに行くだけで、Androidのマシンでは、ルーティングがジャンプするたびに現在のアドレスを許可する必要があります.具体的には、微信共有総括(SPA/historyモード)を参照してください.
私のやり方は、ページを開くときに署名を取得し、共有するページに入るときにAndroidデバイスにいるかどうかを判断し、新しい署名を取得する必要があるかどうかを決定することです.署名の問題が解決した後、OKだと思っていたが、iOSで共有するのはまだ問題があることに気づいた.最後に位置づける問題はiOSで共有ページに入った後にwxが繰り返しトリガーされないことである.readyの方法は,共有の論理を記述するだけでよい.
function getSignature () {
  //       
}

function wxShare (data) {
  if (/(Android)/i.test(window.navigator.userAgent)) {
    //   Android   ,        
    getSignature()
  }

  wx.ready (function () {
    shareConfig(data)
  })

  // iOS          wx.ready
  shareConfig(data)
}

function shareConfig (data) {
  //     
}

転載先:https://juejin.im/post/5b2c69486fb9a00e38583ba7