@capacitor/app
App API 负责处理应用的高级状态和事件。例如,当应用进入或离开前台时,该 API 会发出事件,同时处理深度链接、打开其他应用以及管理持久化的插件状态。
安装
npm install @capacitor/app
npx cap sync
iOS
要能够通过自定义协议(scheme)打开应用,你需要先注册该协议。你可以通过编辑 Info.plist 文件并添加以下行来实现。
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLName</key>
<string>com.getcapacitor.capacitor</string>
<key>CFBundleURLSchemes</key>
<array>
<string>mycustomscheme</string>
</array>
</dict>
</array>
Android
要能够通过自定义协议(scheme)打开应用,你需要先注册该协议。你可以通过在 AndroidManifest.xml 的 activity 部分内添加以下行来实现。
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="@string/custom_url_scheme" />
</intent-filter>
custom_url_scheme 的值存储在 strings.xml 中。当添加 Android 平台时,@capacitor/cli 会将应用 的包名作为默认值添加,但可以通过编辑 strings.xml 文件来替换。
示例
import { App } from '@capacitor/app';
App.addListener('appStateChange', ({ isActive }) => {
console.log('应用状态已改变。是否处于活动状态?', isActive);
});
App.addListener('appUrlOpen', data => {
console.log('应用通过 URL 打开:', data);
});
App.addListener('appRestoredResult', data => {
console.log('恢复的状态:', data);
});
const checkAppLaunchUrl = async () => {
const { url } = await App.getLaunchUrl();
console.log('应用通过 URL 打开:' + url);
};
配置
| 属性 | 类型 | 描述 | 默认值 | 始于 |
|---|---|---|---|---|
disableBackButtonHandler | boolean | 禁用插件默认的后退按钮处理。仅适用于 Android。 | false | 7.1.0 |
示例
在 capacitor.config.json 中:
{
"plugins": {
"App": {
"disableBackButtonHandler": true
}
}
}
在 capacitor.config.ts 中:
/// <reference types="@capacitor/app" />
import { CapacitorConfig } from '@capacitor/cli';
const config: CapacitorConfig = {
plugins: {
App: {
disableBackButtonHandler: true,
},
},
};
export default config;
API
exitApp()getInfo()getState()getLaunchUrl()minimizeApp()toggleBackButtonHandler(...)addListener('appStateChange', ...)addListener('pause', ...)addListener('resume', ...)addListener('appUrlOpen', ...)addListener('appRestoredResult', ...)addListener('backButton', ...)removeAllListeners()- 接口
- 类型别名
exitApp()
exitApp() => Promise<void>
强制退出应用。此方法应仅与 Android 的 backButton 处理器结合使用,以便在导航完成后退出应用。
如果使用 Ionic,Ionic 会自行处理此操作,因此你不需要调用此方法。
始于: 1.0.0
getInfo()
getInfo() => Promise<AppInfo>
返回关于应用的信息。
返回:
Promise<AppInfo>
始于: 1.0.0
getState()
getState() => Promise<AppState>
获取当前应用状态。
返回:
Promise<AppState>
始于: 1.0.0