Platform
Platform 服务可用于获取当前设备的信息。您可以使用 platforms 方法获取与设备相关的所有平台信息,包括应用是否在平板电脑上运行、是否在移动设备或浏览器中查看,以及具体的平台(iOS、Android 等)。您还可以获取设备的方向、是否使用从右到左的语言方向等等。利用这些信息,您可以完全定制应用以适应任何设备。
使用方法
- Angular
- Angular (Standalone)
import { Platform } from '@ionic/angular';
@Component({...})
export class MyPage {
constructor(public platform: Platform) {
}
}
import { Platform } from '@ionic/angular/standalone';
@Component({...})
export class MyPage {
constructor(public platform: Platform) {
}
}
方法
is
| 说明 | 根据用户所在的平台,is(platformName) 将返回 true 或 false。请注意,同一个应用可能对多个平台名称返回 true。例如,在 iPad 上运行的应用会对以下平台名称返回 true:mobile、ios、ipad 和 tablet。此外,如果应用是从 Cordova 运行的,那么 cordova 将为 true。 |
| 签名 | is(platformName: Platforms) => boolean |
参数
| 参数名 | 类型 | 描述 |
|---|---|---|
platformName | Platforms | 平台名称。可用选项包括 android、capacitor、cordova、desktop、electron、hybrid、ios、ipad、iphone、mobile、phablet、pwa、tablet |
平台列表
下表列出了所有可能的平台值及其对应的描述。
| 平台名称 | 描述 |
|---|---|
| android | 运行 Android 的设备 |
| capacitor | 运行 Capacitor 的设备 |
| cordova | 运行 Cordova 的设备 |
| desktop | 桌面设备 |
| electron | 运行 Electron 的桌面设备 |
| hybrid | 运行 Capacitor 或 Cordova 的设备 |
| ios | 运行 iOS 的设备 |
| ipad | iPad 设备 |
| iphone | iPhone 设备 |
| mobile | 移动设备 |
| mobileweb | 在移动设备中运行的网页浏览器 |
| phablet | 平板手机设备 |
| pwa | PWA 应用 |
| tablet | 平板设备 |
自定义平台检测函数
可以通过在全局 Ionic 配置 中提供替代函数来覆盖用于检测特定平台的函数。每个函数都以 window 作为参数并返回一个布尔值。
import { IonicModule } from '@ionic/angular';
@NgModule({
...
imports: [
BrowserModule,
IonicModule.forRoot({
platform: {
/** 默认的 `desktop` 函数对于带有触摸屏的设备返回 false。
* 这并不总是我们想要的,因此此函数改为测试用户代理。
**/
'desktop': (win) => {
const isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(win.navigator.userAgent);
return !isMobile;
}
},
}),
AppRoutingModule
],
...
})
type PlatformConfig = {
android?: ((win: Window) => boolean) | undefined;
capacitor?: ((win: Window) => boolean) | undefined;
cordova?: ((win: Window) => boolean) | undefined;
desktop?: ((win: Window) => boolean) | undefined;
electron?: ((win: Window) => boolean) | undefined;
hybrid?: ((win: Window) => boolean) | undefined;
ios?: ((win: Window) => boolean) | undefined;
ipad?: ((win: Window) => boolean) | undefined;
iphone?: ((win: Window) => boolean) | undefined;
mobile?: ((win: Window) => boolean) | undefined;
mobileweb?: ((win: Window) => boolean) | undefined;
phablet?: ((win: Window) => boolean) | undefined;
pwa?: ((win: Window) => boolean) | undefined;
tablet?: ((win: Window) => boolean) | undefined;
};
platforms
| 说明 | 根据您所在的设备,platforms 可以返回多个值。每个可能的值都是一个平台层次结构。例如,在 iPhone 上,它将返回 mobile、ios 和 iphone。 |
| 签名 | platforms() => string[] |