我使用 ionic serve
在本地主机上运行我的应用程序。
我如何知道我在浏览器中而不是在android中?
我尝试过:
navigator.platform // MacIntel
navigator.platforms // undefined
ionic.Platform.is('BROWSER') // false
navigator.userAgent // ...iPhone... => i'm in chrome device mode
谢谢你!
我使用 ionic serve
在本地主机上运行我的应用程序。
我如何知道我在浏览器中而不是在android中?
我尝试过:
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
类型,您可以避免转译器错误,并仍然实现您想要做的事情。
ionic.Platform.platforms[0] == "browser"
检查应用程序是否在浏览器中运行。
重要的是,ionic.Platform.platforms
仅在$ionicPlatform.ready
事件触发后设置。
检查window.location.hostname是否等于localhost也可以起作用。
if(window.location.hostname === "localhost"){
return 'http://localhost:8100/api/';
} else {
return 'https://some-api.com/';
}
使用
if(ionic.Platform.isWebView()){
console.log('i am in a browser webview!');
}
或者
console.log(ionic.Platform.platform());
这将告诉您您所在的平台。Webview或Android或iOS或其他。
ionic.Platform.isWebView()
=> false,ionic.Platform.platform()
=> ios - Shalev Shalitionic serve --lab
命令时,它会分别将设备检测为 iOS 和 Android。我该如何检测它们? - Samarth Agarwal目前,在我的Ionic 1应用程序中(使用最新版本3.9.x,但使用--type ionic1),当我在桌面上时,ionic.Platform.platform()返回“linux”,而不是“browser”。而且现在在浏览器中存在window.cordova,但您可以检查window.cordova.platformId == 'browser'。它似乎在这里起作用。
cordova.plugins
(至少对我有效)。 - Dylanthepiguy