App
App API 用于管理应用程序的高层状态和事件。
例如,该 API 会在应用进入或离开前台时触发事件,处理深度链接(deeplink)、打开其他应用,以及管理持久化的插件状态。
exitApp()canOpenUrl(...)openUrl(...)getState()getLaunchUrl()addListener(...)addListener(...)addListener(...)addListener(...)removeAllListeners()- 接口说明
关于 canOpenUrl 的注意事项
要使用 canOpenUrl,你需要在 Info.plist 文件的 LSApplicationQueriesSchemes 中设置你的应用将要查询的 URL 方案(scheme)。
详细了解 LSApplicationQueriesSchemes 和 配置 Info.plist。
示例
import { Plugins, AppState } from '@capacitor/core';
const { App } = Plugins;
App.addListener('appStateChange', (state: AppState) => {
// state.isActive 包含当前活跃状态
console.log('应用状态已变更。是否处于活跃状态?', state.isActive);
});
var ret = await App.canOpenUrl({ url: 'com.getcapacitor.myapp' });
console.log('能否打开此 URL:', ret.value);
ret = await App.openUrl({
url: 'com.getcapacitor.myapp://page?id=ionicframework',
});
console.log('打开 URL 的响应:', ret);
ret = await App.getLaunchUrl();
if (ret && ret.url) {
console.log('应用通过此 URL 打开:' + ret.url);
}
console.log('启动 URL:', ret);
App.addListener('appUrlOpen', (data: any) => {
console.log('应用通过此 URL 打开:' + data.url);
});
App.addListener('appRestoredResult', (data: any) => {
console.log('恢复的状态:', data);
});
Android:使用 appRestoredResult
在 Android 上,由于低端设备的内存限制,如果你的应用启动了一个新的活动(Activity),操作系统可能会为了减少内存消耗而终止你的应用。
例如,这意味着 Camera API(它会启动一个新的 Activity 来拍摄照片)可能无法将数据返回给你的应用。
为避免这种情况,Capacitor 会在应用启动时存储所有恢复的活动结果。你应该为 appRestoredResult 添加监听器,以便处理在应用未运行时传递的任何插件调用结果。
一旦你获得了这个结果(如果有的话),就可以更新用户界面以恢复用户的逻辑体验,例如导航或选择正确的标签页。
我们建议每个使用依赖外部 Activity(例如 Camera)的插件的 Android 应用都处理此事件和流程。
API
exitApp()
exitApp() => never
强制退出应用。此方法应仅与 Android 的 backButton 处理程序结合使用,以便在导航完成时退出应用。
Ionic 自身会处理此逻辑,因此如果你使用 Ionic,通常不需要调用此方法。
返回值: never
canOpenUrl(...)
canOpenUrl(options: { url: string; }) => Promise<{ value: boolean; }>