次に、このWebページには、最初にモバイルWebのフロントエンド開発が含まれることです。 HTML5+Bootstrapの組み合わせを使用して、ページの美的効果を実現することを好みます。他のフロントエンドタスクはJavaScriptに引き渡されて解決します(ここでは、ネイティブJavaScriptコードを完全に使用し、フレームワークを使用しません。携帯電話が遅い速度でWebページを読み込んでおり、フレームワークの多くの未使用関数もユーザートラフィックを消費するWebページにロードするためです)。
すべての機能が準備ができた後、顧客は試用に非常に満足し、その後、コードを公式サーバーに提出しました。ただし、他のパーティは突然1つのことに言及しました。作成したページは確かに非常に美しく、互換性がありますが、このページにはコンピューターのブラウザを使用してアクセスすることもできます。そのため、他の人はページのソースコードを何気なく表示し、ページ全体をコピーできます。これを防ぐ方法はありますか?その後、質問が再び来ます。 WeChatの二次開発を行うのはこれが初めてです。私はそのような需要に遭遇したことがありません。どうすれば解決できますか?
私はしばらくそれを考えることができませんでした、そして後で私はこの問題を脇に置き、いくつかのバックエンドビジネスをしました。バックグラウンドでデータ収集機能を実行する場合、PHPコードはパラメーター$ _Server ['http_user_agent']を使用します。ブラウザがWebページにアクセスすると、ユーザーエイジェントがサーバーに送信されると突然考えました。これには、ブラウザとユーザーオペレーティングシステムに関する基本的な情報が含まれています。 WeChatには組み込みのブラウザがあるため、WeChatでWebページを閲覧するときにWeChatに関連するユニークなロゴをユーザーエイジェントにもたらします(結局、Tencentはこのような大企業であり、WeChatはコア製品の1つです)。コードを使用してユーザーエージェントを印刷して確認してください。 JavaScriptコードは次のとおりです。
コードコピーは次のとおりです。
<script type = "text/javascript">
アラート(navigator.useragent);
</script>
私の携帯電話に示されているように結果が得られました:
案の定、私は本当に何か違うものを見ました。賢い友達がそれを発見したと思います。そうです、それはこのことです:MicroMessenger/6.0.0.50_R844973.501。スラッシュの背後にある文字列は、私が現在使用しているWeChatのバージョン番号であり、フロントはWeChatのユニークなロゴである必要があります。実際、私は最初はそれがマイクロメッジだと思っていたので、中国の翻訳は「マイクロメッシュ」を意味すると考えていましたが、よく見ると、そうではないことがわかりました。辞書を調べた後、メッセンジャーという言葉は「メッセージを報告する人、メッセージを送信する人」を意味していることに気付きました。このロゴは、他のブラウザにはないものと言われるべきなので、解決策はここにあります。コードを参照してください。
コードコピーは次のとおりです。
<script type = "text/javascript">
//ブラウザのユーザーエージェントを定期的に一致させます。 WeChatユニークな識別子が含まれていない場合、それは他のブラウザーです。
var useragent = navigator.useragent;
if(useragent.match(/micromessenger/i)!= 'micromessenger'){
//この警告ボックスは現在のページをブロックし、ロードを続けます
Alert( 'このアクセスは禁止されています。このページにアクセスするには、WeChatの組み込みブラウザを使用する必要があります!');
//次のコードは、JavaScriptで現在のページを強制的に閉じることです
var open = window.open( 'about:blank'、 '_ self');
open.opener = null;
open.close();
}
</script>
このコードは、Android、iPhone、iPad、およびPCでテストされています。 Wechat内でWebページが開かれていない限り、上の警告ボックスが最初にポップアップします。この時点で、背後のページは空白で、何もロードされていません。警告ボックスの確認ボタンをクリックすると、最後の3行のコードが現在のページを強制的に閉じます。 OK、ここではユーザーの元の意図を実現しました、そして、それは単純に行うことができます。
待って、あなたは本当にこのような仕事を終えることができますか?他に問題はないと確信していますか?もちろん違います。実際、この方法は、Forged Useragentsであるため、この制限をバイパスする可能性があるため、安心しません。一般的に、それは紳士であるが悪役を守ることです。誰もが知っています。もちろん、友人がこの問題を解決するためのより良い方法がある場合は、以下でコメントしてください。テクノロジーは互いに共有とコミュニケーションにあるのです。