Vue (ハッシュモード) は、共有ページの共有リンクの # の背後にあるアドレス傍受問題に対処するために WeChat 公式アカウントを開発します。

説明

Vue を使用して公開アカウントを開発している場合、リンクを共有するときにこの問題が発生すると、# の後にすべてのアドレスが傍受されてから、ホームページにジャンプします。履歴モードを使用する場合、この問題は存在しませんが、Vue はこのモードを有効にするためにバックグラウンド構成サポートを必要とします。私たちのバックエンドについて尋ねた後、私は直接ノーと言いました。方法はありません。自分で解決する方法しか見つかりません。

一連の考え

その時はざっくり検索して色々試してみたのですが、トランスコードやスプライシングは駄目で、あとで転送ページを使ってジャンプを実現しました。

原則は、大まかにサードパーティのページを作成することです。次に、WeChat共有リンクを作成するときにパラメータを取得し、このサードパーティのページにジャンプしてから、このページのパラメータに再度参加し、最後に共有する必要がある場所にリダイレクトしますリンク 共有したページに移動します。

これも需要に応じて、ページに入るとWeChat認証を開始してコードを取得する必要があるため、この方法を採用しています。そのため、プロジェクトのニーズにも依存します。

コード

新しい redirect.html を作成します

<!DOCTYPE html>
<html lang="en">

<head>
    <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no" />
</head>

<body>
    <script>
        var str = window.location.search
        
        //这里写处理代码,因为我的分享链接有四个场景,所以在这里对str做了一些处理和判断
        
        window.location.href = '域名' + '/#/' + strr + '?' + can
    </script>
</body>

</html>

リンクインジェクションを共有する場合

 const newUrl = window.location.protocol + "//" + window.location.host + "存放的路径/redirect.html?" + '拼接你的参数'
          
 wx.onMenuShareAppMessage({
    
    
            title: title, // 分享标题
            desc: desc, // 分享描述
            link: newUrl, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
            imgUrl: img, // 分享图标
            type: "", // 分享类型,music、video或link,不填默认为link
            dataUrl: "", // 如果type是music或video,则要提供数据链接,默认为空
            success: function() {
    
    
              // 用户点击了分享后执行的回调函数
              // alert("分享成功");
            },
            cancel: function() {
    
    
              // 用户取消分享后执行的回调函数
              // alert("分享取消");
            }
          });

ただし、WeChat サーバーにコードを取得するように要求する場合、redirect_uri はこのパスを確保する必要があり、リンクを処理するときは注意が必要です。私はここでめちゃくちゃになりました。

個人的なレベルは限られています. ご不明な点がございましたら, 指導のためにメッセージを残してください. それは学習と参考のためだけです.

学びに制限はありません!お互いに励まし合い、がんばりましょう!

おすすめ

転載: blog.csdn.net/qq_37131884/article/details/104124244