@capacitor/app
App API 处理高级别的应用状态和事件。例如,此 API 在应用进入和离开前台时发出事件、处理深层链接、打开其他应用以及管理持久化的插件状态。
安装
npm install @capacitor/app
npx cap sync
iOS
为了能够通过自定义 scheme 打开应用,您需要先注册该 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 打开应用,您需要先注册该 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);
};
API
exitApp()
exitApp() => never
强制退出应用。此方法应仅与 Android 的 backButton 处理器结合使用,在导航完成时退出应用。
Ionic 本身会处理此操作,因此如果您使用 Ionic,则无需调用此方法。
返回: never
起始版本: 1.0.0
getInfo()
getInfo() => Promise<AppInfo>
返回应用的信息。
返回:
Promise<AppInfo>
起始版本: 1.0.0
getState()
getState() => Promise<AppState>
获取当前应用状态。
返回:
Promise<AppState>
起始版本: 1.0.0
getLaunchUrl()
getLaunchUrl() => Promise<AppLaunchUrl | undefined>
获取应用启动时的 URL(如果有)。
返回:
Promise<AppLaunchUrl>
起始版本: 1.0.0
minimizeApp()
minimizeApp() => Promise<void>
最小化应用。
仅适用于 Android。
起始版本: 1.1.0