2017-01-22 7 views
0

SafariやChromeなどのWebブラウザを使用してWebサイトにアクセスした場合、またはモバイルアプリケーションでWeb Viewを使用してWebサイトにアクセスした場合のWebサイトの区別方法を教えてください。WebブラウザまたはAppを通じてWebサイトに入力した場合、Webサイトをどのように区別できますか?

私はウェブアプリを作っています。 Webブラウザを使用してWebサイトにアクセスする場合と、Web Viewを使用してモバイルアプリケーションを使用する場合とで異なるUIを提供したいと考えています。

+1

ユーザエージェント、画面サイズ/解像度。アプリがインストール可能で、ネイティブではなくハイブリッドである場合は、カスタムヘッダーリクエスト。 –

+0

しかし、アダムが言ったことはすべて偽造されている可能性があるので、ユーザーが実際にヘッダーなどで示された*デバイスからウェブサイトを要求しているという保証はない。 – luk2302

+0

@PoByBolek .NETとの関係はほとんどない –

答えて

0

をお勧めします私はあなたがモバイルアプリケーションやウェブサイトを自分で実装すると、ブラウザ対独自のアプリケーションを検出する必要があることを、前提としています。私はこれに対して別の解決策を実践してきました。

モバイルでアプリケーションを実行する場合、ブラウザのコンテキストにJavaScriptブリッジオブジェクトを挿入できます。アプリケーションがブラウザで実行されているときは、javascriptブリッジオブジェクトが存在するかどうかをチェックし、存在しない場合はエミュレートします。

あなたはそれが両方のケースのために何か方法を持っている必要があるすべて:

あなたはそれが好きで実装するWeb用
nativeBridge.getClientId(); 

:Web表示用

if(!window.nativeBridge){ 
    window.nativeBridge = { 
     getClientId:function(){ return "web"; } 
    } 
} 

を追加する必要がありますがメソッドをブリッジに渡して、別の定数を返します。

注: 'nativeBridge'は単なる名前です。別のオブジェクト名を使用している可能性があります。

+0

ありがとう!しかし、私はそれがアプリケーションのUIを変更する方法だと思います。ユーザーがアプリケーションやサファリを通じてアクセスすることをウェブサイトが知っている方法はありますか?私はどのような方法(アプリVSブラウザ)ユーザーがWebサイトにアクセスするか、アプリケーション上で変更しないで、Webサイト上のUIを変更したい。 –

+0

これは、ページがロードされる前にハイブリッドアプリケーションのみが定義されたjavascriptブリッジオブジェクトを持つため、ユーザーがモバイルから、または一部のブラウザからアクセスした場合、ウェブサイトがそれを検出する方法です。だから、あなたのウェブサイトが最初に行うことは、JavaScriptブリッジが定義されているかどうか、それがどのクライアントから接続されているかをチェックすることです。チェックの結果に応じて、ウェブサイトのレンダリング方法が異なります。しかし、はい、わずかな変更が必要です。それ以外の場合は、他のブラウザと同じようにjsutします。 –

1

は、2つの可能なアプローチがあります。

  1. ブラウザだけでなく、「ウェブビュー」 - ヘッドレスブラウザの種類、である - あなたのサーバーで利用可能であるべきであるあなたのウェブサイトへのUser-Agent文字列を渡します/プログラミング環境。これらの文字列を分析し、それに基づいて異なるUIを提供することができます。 Googleで「webview user agent string」を検索します。
  2. デバイス自体は気にしないでください。画面サイズ(CSS Media Queriesを使用)と入力方法(Pointer-Eventsを探索するあなたの旅を始める)のような「機能」に基づいて異なるUIを提供してください。

は今日では、ほとんどの開発者は、オプション2.

関連する問題