1. ホーム
  2. javascript

[解決済み] PhoneGap: デスクトップのブラウザで動作しているかどうかを検出する

2022-09-06 03:53:04

質問

私は、モバイル版で PhoneGap:Build を使用する Web アプリケーションを開発しており、「デスクトップ」版とモバイル版で単一のコードベースを持ちたいと思っています。PhoneGap 呼び出しが機能するかどうか (つまり、ユーザーが PhoneGap をサポートするモバイル デバイス上にいるかどうか) を検出できるようにしたいのですが、どうすればよいでしょうか?

私は検索しましたが、これを行う簡単な方法がないことを信じることができません。多くの人が提案を提供してくれました。

デスクトップ バージョンのアプリから 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
}  

このように モバイルブラウザまたはPhoneGapアプリケーションの間で検出する