Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ionic framework 如何打开应用程序&x2B;离子5中推送通知的特定url?_Ionic Framework_Deep Linking_Ionic Native_Ionic React - Fatal编程技术网

Ionic framework 如何打开应用程序&x2B;离子5中推送通知的特定url?

Ionic framework 如何打开应用程序&x2B;离子5中推送通知的特定url?,ionic-framework,deep-linking,ionic-native,ionic-react,Ionic Framework,Deep Linking,Ionic Native,Ionic React,我正在开发一个带有ionic 5(react)和capactor.js的应用程序。我有一个处理程序,当我收到推送通知并采取行动(目前我只是注销数据)时执行任务。在此处理程序中,我需要将用户路由到应用程序中的特定路由,例如myapp/mymovies/:movie id。最初我认为我需要使用一个插件来支持通用链接,但现在我质疑这一点,主要是因为我们并没有启动相应的web/pwa应用程序,而我的理解是,通用链接是将网站URL与特定于应用程序的URI方案和路由()联系起来的链接。我还了解到,通用链接是

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

所以我的问题是,如何从推送通知中的事件处理程序路由到应用程序中经过身份验证的特定uri?(假设已安装)这可以通过使用或之类的插件来实现吗?看起来我需要创建“”,但正如我提到的,我们没有此应用程序的附带网站。

参考官方信息,您应该在应用程序中实现此处理程序

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

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

范例

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);
      }
    })
  });
更新:-

对于处理深度链接,推送通知插件将不会处理此问题。。你必须为此目的使用。特别是这段代码

App.addListener('appUrlOpen', (data: any) => {
   console.log('App opened with URL: ' +  data.url);
});
就我个人而言,在电容器中的深度链接方面付出了艰苦的努力之后,我继续实施Firebase动态链接,即使应用程序没有安装在设备上也能正常工作


但仍然需要应用程序关联文件。

谢谢@chetan bansal-我的应用程序中有这个侦听器。我对为一个没有附带网站的应用程序创建网站关联文件感到困惑——这是深度链接工作必不可少的一步吗?文档做出了一些不适用于这种情况的假设,我正试图找出我需要采取的步骤。在你的问题中,你也提到了推送通知。。深度链接和推送通知是两件不同的事情。。安装应用程序时,推送通知将出现在设备的通知中。。另一方面,深度链接就像一个可共享的URL。现在,首先,如果没有站点关联文件,您无法设置深度链接。这是绝对关键的。。其次,推送通知插件不会处理您的深层链接。。深度链接请参见我的答案编辑。再次感谢@chetan bansal。您回答了我的问题,即需要应用程序关联文件。看起来在完成这些关联之后,我可以使用PushNotificationActionPerformed监听器中的电容器应用程序插件来进行适当的路由。我会试试看