プラットフォーム
Platform サービスは、現在のデバイスに関する情報を取得するために使用できます。デバイスに関連付けられたすべてのプラットフォームを platforms
メソッドを使用して取得できます。これには、アプリがタブレットから表示されているか、モバイルデバイスまたはブラウザ上にあるか、および正確なプラットフォーム(iOS、Androidなど)が含まれます。デバイスの向き、右から左への言語方向を使用しているかどうか、その他多くの情報を取得できます。この情報を使用すると、あらゆるデバイスに合わせてアプリを完全にカスタマイズできます。
使用法
- Angular
- Angular (スタンドアロン)
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 から実行されているアプリは、プラットフォーム名 mobile 、ios 、ipad 、および tablet に対して true を返します。さらに、アプリが 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 | モバイルデバイスで実行されている Web ブラウザ |
phablet | ファブレットデバイス |
pwa | PWA アプリ |
tablet | タブレットデバイス |
プラットフォーム検出関数のカスタマイズ
特定のプラットフォームを検出するために使用される関数は、グローバルの Ionic 設定で代替関数を提供することでオーバーライドできます。各関数はパラメータとして window
を受け取り、ブール値を返します。
import { IonicModule } from '@ionic/angular';
@NgModule({
...
imports: [
BrowserModule,
IonicModule.forRoot({
platform: {
/** The default `desktop` function returns false for devices with a touchscreen.
* This is not always wanted, so this function tests the User Agent instead.
**/
'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[] |
ready
説明 | プラットフォームの準備が完了し、ネイティブ機能が呼び出せるようになったときに、Promise を返します。アプリが Web ブラウザ内から実行されている場合、Promise は DOM の準備が完了すると解決されます。アプリが Cordova などのアプリケーションエンジンから実行されている場合、Promise は Cordova が deviceready イベントをトリガーすると解決されます。解決された値は readySource で、使用されたプラットフォームを記述します。たとえば、Cordova の準備が完了すると、解決された準備ソースは cordova になります。デフォルトの準備ソースの値は dom になります。readySource は、アプリの実行元のプラットフォームに応じて異なるロジックを実行する必要がある場合に役立ちます。たとえば、Capacitor と Cordova のみでステータスバープラグインを実行できるため、Web でステータスバープラグインのロジックを実行すべきではありません。 |
シグネチャ | ready() => Promise<string> |
isRTL
説明 | このアプリが右から左への言語方向を使用しているかどうかを返します。アプリの index.html ファイルに、<html dir="ltr"> または <html dir="rtl"> など、正しい dir 属性値が設定されていることをお勧めします。W3C: HTML における構造マークアップと右から左へのテキスト |
シグネチャ | isRTL() => boolean |
isLandscape
説明 | アプリがランドスケープモードの場合は true を返します。 |
シグネチャ | isLandscape() => boolean |
isPortrait
説明 | アプリがポートレートモードの場合は true を返します。 |
シグネチャ | isPortrait() => boolean |
width
説明 | window.innerWidth を使用して、プラットフォームのビューポートの幅を取得します。 |
シグネチャ | width() => number |
height
説明 | window.innerHeight を使用して、プラットフォームのビューポートの高さを取得します。 |
シグネチャ | height() => number |
url
説明 | 現在の URL を取得します。 |
シグネチャ | url() => string |
testUserAgent
説明 | 式がユーザーエージェント文字列に含まれている場合は true を返します。 |
シグネチャ | testUserAgent(expression: string) => boolean |
パラメータ
名前 | 型 | 説明 |
---|---|---|
式 | 文字列 | ユーザーエージェントで確認する文字列 |
イベント
pause
pause
イベントは、ネイティブプラットフォームがアプリケーションをバックグラウンドに移行したときに発生します。通常、ユーザーが別のアプリケーションに切り替えたときです。このイベントは、Cordova/Capacitor アプリがバックグラウンドに移行したときに発生しますが、標準の Web ブラウザでは発生しません。
例
this.platform.pause.subscribe(async () => {
alert('Pause event detected');
});
resize
resize
イベントは、ブラウザウィンドウの寸法が変更されたときに発生します。これは、ブラウザウィンドウのサイズが物理的に変更された場合、またはデバイスの向きが変わった場合に発生します。
例
this.platform.resize.subscribe(async () => {
alert('Resize event detected');
});
resume
resume
イベントは、ネイティブプラットフォームがバックグラウンドからアプリケーションを取り出したときに発生します。このイベントは、Cordova/Capacitor アプリがバックグラウンドから戻ってきたときに発生しますが、標準の Web ブラウザでは発生しません。
例
this.platform.resume.subscribe(async () => {
alert('Resume event detected');
});