1

我正在使用 ionic 5 (react) 和电容器.js 开发一个应用程序。当我收到推送通知并采取行动(目前我只是注销数据)时,我有一个执行任务的处理程序。我需要在这个处理程序中发生的事情是将用户路由到应用程序中的特定路由,例如myapp/my-movies/:movie-id. 最初我认为我需要使用插件来支持通用链接,但现在我质疑这主要是因为我们没有将相应的 web/pwa 应用程序投入生产,我的理解是通用链接是一个将网站 URL 与特定于应用程序的 URI 方案和路由联系起来(来自这个有用的 SO 帖子)。我还在阅读通用链接是自定义 uri 方案的强制替代品,而且我阅读的越多,这变得越不清晰。

所以我的问题是,如何从推送通知中的事件处理程序路由到我的应用程序中经过身份验证的特定 uri?(假设已安装)这可以使用像电容器.js 深层链接ionic/native这样的插件来完成吗?看起来我需要创建“您的网站和应用程序之间的双向关联”,但就像我提到的,我们没有此应用程序的随附网站。

4

1 回答 1

3

参考官方插件文档,您应该在您的应用程序中实现此处理程序。

每当用户点击推送通知时,当应用程序关闭时,这个监听器就会被触发。在此内部,您可以路由到特定页面。

此外,您必须在从服务器发送的推送通知中添加有效负载。可以在侦听器内部读取该有效负载。基于此,您的应用程序可以决定它应该在哪里导航。

例子

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 动态链接,即使设备上未安装该应用程序也能正常工作。

但是,仍然需要应用关联文件。

于 2020-09-19T10:43:29.123 回答