我正在使用 ionic 5 (react) 和 Capacitor.js 开发一个应用程序。我有一个处理程序,用于在收到推送通知并采取操作时执行任务(目前我只是注销数据)。我需要在此处理程序中执行的操作是将用户路由到应用程序中的特定路线,例如myapp/my-movies/:movie-id
。最初我以为我需要使用一个插件来支持通用链接,但现在我对此提出疑问,主要是因为我们没有启动生产相应的 web/pwa 应用程序,我的理解是通用链接是一个将网站 URL 与特定于应用程序的 URI 方案和路由 ( from this helpful SO post ) 联系起来。我还读到通用链接是自定义 uri 方案的强制替代品,我读得越多,这一点就越不清楚。
所以我的问题是,如何从推送通知中的事件处理程序路由到应用程序中经过身份验证的特定 URI? (假设已安装)这可以使用像 capacitor.js deeplinks 这样的插件来完成吗?或ionic/native ?看起来我需要创建“a two-way association between your website and app ”,但正如我提到的,我们没有此应用程序的随附网站。
最佳答案
引用官方plugin docs ,您应该在您的应用程序中实现此处理程序。
只要用户在应用程序关闭时点击推送通知,就会触发此监听器。在其中您可以路由到特定页面。
此外,您必须在从服务器发送的推送通知中添加有效负载。该有效负载可以在监听器内部读取。基于此,您的应用可以决定应该导航到哪里。
示例
PushNotifications.addListener('pushNotificationActionPerformed',
(res: PushNotificationActionPerformed) => {
this.zone.run(() => {
console.log(res);
if (res.notification.data && res.notification.data.value) {
//assuming your payload has a key 'value'
this.navigateToMyMovies(res.notification.data.value);
}
})
});
更新:-
为了处理深层链接,推送通知插件将无法处理该问题。您必须使用 Capacitor App Plugin为了这个目的。具体来说这段代码..
App.addListener('appUrlOpen', (data: any) => {
console.log('App opened with URL: ' + data.url);
});
就个人而言,在努力研究电容器中的深层链接之后,我继续实现了 Firebase 动态链接,即使设备上未安装该应用,该链接也能正常工作。
但是仍然需要应用程序关联文件..
关于ionic-framework - 如何从 Ionic 5 中的推送通知打开应用程序 + 特定网址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63963660/