应用
App API 处理高级别的应用状态和事件。
例如,此 API 在应用进入和离开前台时发出事件、处理深层链接、打开其他应用以及管理持久化的插件状态。
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,操作系统可能会终止您的应用以减少内存消耗。
例如,这意味着启动新 Activity 来拍照的 Camera API 可能无法将数据返回给您的应用。
为了避免这种情况,Capacitor 在启动时存储了所有恢复的 Activity 结果。您应该为 appRestoredResult 添加监听器,以处理在应用未运行时交付的任何插件调用结果。
一旦您获得了该结果(如果有的话),您可以更新 UI 以为用户恢复逻辑体验,例如导航或选择正确的标签页。
我们建议每个使用依赖外部 Activity 的插件(例如 Camera)的 Android 应用都处理此事件和流程。
API
exitApp()
exitApp() => never
强制退出应用。这应仅与 Android 的 backButton 处理程序结合使用,以在导航完成时退出应用。
Ionic 自己处理此操作,因此如果您使用 Ionic,则无需调用此方法。
返回: never
canOpenUrl(...)
canOpenUrl(options: { url: string; }) => Promise<{ value: boolean; }>
检查是否可以通过给定的 URL 打开应用
| 参数 | 类型 |
|---|---|
options | { url: string; } |
返回: Promise<{ value: boolean; }>
openUrl(...)
openUrl(options: { url: string; }) => Promise<{ completed: boolean; }>
通过给定的 URL 打开应用
| 参数 | 类型 |
|---|---|
options | { url: string; } |
返回: Promise<{ completed: boolean; }>
getState()
getState() => Promise<AppState>
获取当前应用状态
返回:
Promise<AppState>
getLaunchUrl()
getLaunchUrl() => Promise<AppLaunchUrl>
获取应用启动时的 URL(如果有的话)
返回:
Promise<AppLaunchUrl>
addListener(...)
addListener(eventName: 'appStateChange', listenerFunc: (state: AppState) => void) => PluginListenerHandle
监听应用活动状态的变化(应用是在前台还是后台)
| 参数 | 类型 |
|---|---|
eventName | "appStateChange" |
listenerFunc | |
返回:
PluginListenerHandle
addListener(...)
addListener(eventName: 'appUrlOpen', listenerFunc: (data: AppUrlOpen) => void) => PluginListenerHandle
监听应用的 URL 打开事件。这既处理自定义 URL scheme 链接,也处理您的应用处理的 URL(iOS 上的 Universal Links 和 Android 上的 App Links)
| 参数 | 类型 |
|---|---|
eventName | "appUrlOpen" |
listenerFunc | |
返回:
PluginListenerHandle
addListener(...)
addListener(eventName: 'appRestoredResult', listenerFunc: (data: AppRestoredResult) => void) => PluginListenerHandle
如果应用启动时带有先前持久化的插件调用数据,例如在 Android 上当一个 Activity 返回到一个已关闭的应用时,此调用将返回应用启动时携带的任何数据,并转换为插件调用的结果形式。
| 参数 | 类型 |
|---|---|
eventName | "appRestoredResult" |
listenerFunc | |
返回:
PluginListenerHandle
addListener(...)
addListener(eventName: 'backButton', listenerFunc: (data: AppUrlOpen) => void) => PluginListenerHandle