マイクロチャネルは、VUEハッシュモードで開いている家を3つの完璧なソリューションを共有した後、

それはマイクロページの手紙H5プラットフォームによって開発されたマイクロチャネルに基づいて良い広げることができるように、マイクロチャネルの共有は、私たちに大きな利便性をもたらしました。だから、基本的に各共有の機能が統合されたマイクロ文字-H5の信仰の開発に基づいて行われます。しかし、マイクロ文字APIをドッキング数日前にはピットを共有するための時間を見つけました。VUEの開発のためのアプリケーションフレームワークを使用して、リンクアウトシェアは切り捨てられます。

通常のリンク:https://hxkj.vip/#/article?article_id=8
リンクを開いた後、それはなったシェア:https://hxkj.vip/?from=singlemessage&isappinstalled=0
権利は、そうピットです。だけでなく、ルートが遮断され、パラメータがなくなっています。

上記の問題を解決するために、最初に考えたのは、オンラインヘルプの方法を見つけることです。どこにする共有リンクする方法を見つける:(この記事が使用するshareLink変数名などを)

let shareLink = window.location.href.split("#")[0]+"#"+window.location.href.split("#")[1]; // 使用这种方法重新拼接一下当前连接

ただし、使用、カットまたはカットすることはありません。したがって、それは、次の3つの効果的な方法が生まれました。

図1に示すように、リンク内のグローバルルーティング傍受
2、トランジットのフロントページ、リダイレクト
リダイレクトの後端に3、

まず、傍受リンクのグローバルルーティング

#ADDの前で1、?いいえ。

テストの後、長い#ルートアドオンの前のようにことがわかりましたか?ドメイン名とパラメータプラスの間のリンクは、ときにのみ分離微信号?from=singlemessage&isappinstalled=0、後でまだ元のパラメータが完全に遮断されない運びます。だから、追加した後:

let shareLink = 'https://hxkj.vip/?#/article?article_id=8';
shareLink = shareLink.replace('/#/', '/?#/');

変えることへのリンクを共有:https://hxkj.vip/?#/article?article_id=8
リンクを共有した後、このようになります。https://hxkj.vip/?from=singlemessage&isappinstalled=0#/記事?article_idに= 8

これが挿入されたものの、それとの違いことがわかった?from=singlemessage&isappinstalled=0原料のこの束を、しかし少なくとも、ルーティングパラメータを保持して、我々は、この期間のリンクを扱います。

2、定期交換 ?from=singlemessage&isappinstalled=0

この手順は、次のように操作があり、VUEグローバルルーティングを実行する必要があります:

// router.js
router.beforeEach((to, from, next) => {
    let url = window.location.href;
    if (url.includes('?from=')) { // 判断是否携带了 from 参数,这一步灵活变通,只要能判断出是从微信分享链接进来的就 OK
        url = url.replace(/vip.+.#/, 'vip/#'); // 利用正则表达式去掉微信携带的 ?from=singlemessage&isappinstalled=0 这串参数,如果这串参数对于你当前的页面有用处的话,可以重新拼接到你正常的链接后面去
        window.location.href = url; // 重定向到正常链接
    }
})

その定期交換上記のコアコードurl = url.replace(/vip.+.#/, 'vip/#')は、これは非正規を書くために、何の関係も供給されないされていません。しかし、各チャンネルにマイクロチャネルシェア(単一のマイクロチャネルのチャットは、マイクロチャネルグループチャット、友人の輪、QQ ...)によって運ばれるfromパラメータは番号#まで、これ以降のドメイン名サフィックスを一致させるためにそこに必要があり、同じではありません。削除されたマイクロチャネルまで追加パラメータの束と同等のものを交換した後!

正しく上記の手順:

リンクを共有する:https://hxkj.vip/?#/article?article_id=8
オープン共有リンクに再び共有した後。:取引を行うためにそこにルートなので、リンクは通常の状態になりhttps://hxkj.vip/#/article?article_id=8

第二に、トランジットのフロントページ、リダイレクト

1、新交通ページ

ではpublic、フォルダ、新しい作成しますhtml(プロジェクトとページindex.htmlの名前が付いた同じレベルで)、redirect.htmlファイルの内容を次のとおりです。

<script>
    let url = location.href.split('?')
    let params = url[1].split('&')
    let data = {}
    params.forEach((n, i) => {
        let p = n.split('=')
        data[p[0]] = p[1]
    })
    if (!!data.shareRedirect) {
        window.location.href = decodeURIComponent(data.shareRedirect)
    }
</script>

あなたが他のものを必要としないので、唯一のジャンプ用として、ちょうどそれにJSを書くので

2、リンクアセンブリを共有します

リンクを共有するには、パスがページの中央に設定されています

let shareLink = 'https://hxkj.vip/#/article?article_id=8';
shareLink = window.location.href.split('#')[0] + 'redirect.html?shareRedirect=' + encodeURIComponent(shareLink);

このアプローチは、最初の方法よりも中央のページは、一般的に、それは非常に簡単です。

正しく上記の手順:

リンクを共有する:https://hxkj.vip/redirect.html?shareRedirect=https%3A%2F%2Fhxkj.vip%2F%3F%23%2Farticle%3Farticle_id%3D8
オープン共有リンクに再び共有した後。:リダイレクションプロセスを行うためのページの真ん中ので、リンクが正常な状態になりhttps://hxkj.vip/#/article?article_id=8

第三に、バックエンドのリダイレクト援助

let shareLink = 后端地址;
第二の方法に対するこのアプローチは、本質的な違いはありません。ちょうどに対処するためのバックエンドにそのステップをリダイレクトに相当。バックエンドの同僚へのリンクがページのアドレスを共有することができます。

IVの概要

最後に、理解していないものを、あなたはフィードバックを読んだ後にメッセージを残すことができます。

:ソース記入してくださいhttps://www.jianshu.com/p/97729dd2c94d
著者:TSY
パーソナルスペース:https://hxkj.vipを

おすすめ

転載: www.cnblogs.com/hashtang/p/12347071.html