私が使う ionic serve
localhostでアプリを実行します。
Androidではなくbrowserにいるときはどうすればわかりますか?
私は試した:
navigator.platform // MacIntel
navigator.platforms // undefined
ionic.Platform.is('BROWSER') // false
navigator.userAgent // ...iPhone... => i'm in chrome device mode
ありがとうございました!
おそらく複数の方法がありますが、簡単な方法は、cordova
がAndroid/iOSでのみ定義されるため、
if (window.cordova) {
// running on device/emulator
} else {
// running in dev mode
}
一部のテキストエディターおよびTypeScriptパーサーは、Property 'cordova' does not exist on type 'Window'.
この問題を回避するには、次を使用できます。
if ((<any>window).cordova) {
// running on device/emulator
} else {
// running in dev mode
}
タイプany
に明示的にキャストすることにより、トランスパイラーエラーを回避しながら、実行しようとしていることを実行できます。
Window.location.hostnameがlocalhostと等しいかどうかを確認することもできます。
if(window.location.hostname === "localhost"){
return 'http://localhost:8100/api/';
} else {
return 'https://some-api.com/';
}
使えるとわかった
ionic.Platform.platforms[0] == "browser"
アプリケーションがブラウザで実行されているかどうかを確認します。
重要なことは、ionic.Platform.platforms
は$ionicPlatform.ready
イベントが発生した後にのみ設定されるということです。
使用する
if(ionic.Platform.isWebView()){
console.log('i am in a browser webview!');
}
または
console.log(ionic.Platform.platform());
それはあなたがどのプラットフォームにいるかを教えてくれます。 WebviewまたはAndroidまたはiosまたは何でも。
とりあえず、my Ionic 1アプリ(最新バージョン3.9.xを使用しますが、-type ionic1を使用))で、デスクトップにいるionic.Platform.platform()が「linux」を返していますブラウザではなくwindow.cordovaが存在しますが、window.cordova.platformId == 'browser'であるかどうかを確認できます。