[解決済み] PhoneGap: デスクトップのブラウザで動作しているかどうかを検出する
2022-09-06 03:53:04
質問
私は、モバイル版で PhoneGap:Build を使用する Web アプリケーションを開発しており、「デスクトップ」版とモバイル版で単一のコードベースを持ちたいと思っています。PhoneGap 呼び出しが機能するかどうか (つまり、ユーザーが PhoneGap をサポートするモバイル デバイス上にいるかどうか) を検出できるようにしたいのですが、どうすればよいでしょうか?
私は検索しましたが、これを行う簡単な方法がないことを信じることができません。多くの人が提案を提供してくれました。
- http://www.sencha.com/forum/showthread.php?144127-Checking-if-running-in-PhoneGap-or-Mobile-Web-Browser
- http://groups.google.com/group/phonegap/browse_thread/thread/322e80bd41bb1a54/a421300eb2a2029f?lnk=gst&q=detect+desktop#a421300eb2a2029f
- http://groups.google.com/group/phonegap/browse_thread/thread/8a95dfeb0f313792/3ff10d8f35211739?lnk=gst&q=detect+desktop+browser#3ff10d8f35211739
デスクトップ バージョンのアプリから PhoneGap Javascript ファイルを削除しない限り、どれも動作しません。
今のところ、私が思いついた唯一の解決策は、ブラウザ/ユーザー エージェント スニッフィングですが、これは少なくとも堅牢とは言えません。何か良い解決策があれば歓迎します。
EDIT: わずかに良い解決策は、小さなタイムアウト後に PhoneGap 関数を呼び出してみることです。それが機能しない場合、ユーザーはデスクトップの Web ブラウザ上にいると仮定します。
どのように解決するのですか?
私はこのコードを使っています。
if (navigator.userAgent.match(/(iPhone|iPod|iPad|Android|BlackBerry|IEMobile)/)) {
document.addEventListener("deviceready", onDeviceReady, false);
} else {
onDeviceReady(); //this is the browser
}
アップデイト
phonegapがブラウザ上で動作しているかどうかを検出する方法は他にもたくさんありますが、ここでは別の素晴らしい方法を紹介します。
var app = document.URL.indexOf( 'http://' ) === -1 && document.URL.indexOf( 'https://' ) === -1;
if ( app ) {
// PhoneGap application
} else {
// Web page
}
関連
-
[解決済み] 要素外でのクリックを検出するにはどうすればよいですか?
-
[解決済み] 画面サイズ、現在のウェブページ、ブラウザウィンドウのサイズを取得する
-
[解決済み] モバイル端末の検出にはどのような方法がありますか?
-
[解決済み] モバイルブラウザの検出
-
[解決済み] Safari、Chrome、IE、Firefox、Operaのブラウザを検出する方法は?
-
[解決済み】ユーザーがウェブページから離れるのを検知する最適な方法とは?
-
[解決済み] jqueryでdivの要素がオーバーフローしていないかチェックする
-
[解決済み] ExtJS 4のイベントハンドリングについて
-
[解決済み] URL/アドレスバーからJavascriptの関数を呼び出す
-
[解決済み] Chromeの拡張機能開発にWebStormを使用するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】JavaScriptのwindow.locationとdocument.locationの違いは何ですか?
-
[解決済み] <Enter>でjQuery UIダイアログを送信する
-
[解決済み] Chromeの拡張機能開発にWebStormを使用するにはどうすればよいですか?
-
[解決済み] TypeScriptプロジェクトで既存のC#クラス定義を再利用する方法
-
[解決済み] javascriptで文字列から関数を作成する方法はありますか?
-
[解決済み] JavaScriptでjson-objectのキーを取得する [重複].
-
[解決済み] JavaScriptで長い配列を小さい配列に分割する方法
-
[解決済み] <ng-content>が空かどうかを確認する方法は?(これまでのAngular 2+で)
-
[解決済み] Chrome拡張機能:popup.htmlを強制終了させる
-
[解決済み] Fetch: ステータスがOKでない場合、プロミスを拒否し、エラーをキャッチするか?