1

我使用 WebView 和我公司网站的初始 URL 创建了一个 React-native 应用程序(在 android 中测试)。我希望用户能够在他们单击带有预期启动 URL 的 OneSignal 推送通知时被重定向到特定网站的产品页面(例如https://www.test.com/product/hoodie-with-zipper/ )包含在发送的通知中。问题是,我希望用户使用我的 WebView 应用程序打开 URL,而不是浏览器。

到目前为止我已经实现和测试的功能:

  1. 实施和测试的 WebView(到目前为止没有问题)

  2. 在本地实施和测试深度链接(使用 'myapp://' 的 android 方案,到目前为止没有问题)

  3. 为 react-native 及其 firebase 需求实现了 OneSignal 推送通知 SDK(到目前为止没有问题)

正如我之前在第 2 点中提到的,我已经尝试并成功地使用 'myapp://' 的 android 方案实现了深度链接。但是,当我尝试实现“https://”的 android 方案时,OneSignal 推送通知的启动 URL 被浏览器打开,而不是我的 WebView 应用程序。

我希望用户能够在他们单击带有预期启动 URL 的 OneSignal 推送通知时被重定向到特定网站的产品页面(例如https://www.test.com/product/hoodie-with-zipper/ )包含在发送的通知中,但它将使用 React-native WebView 而不是浏览器打开。

^ 那么,我应该怎么做才能实现呢?提前感谢。

4

1 回答 1

0

您应该通过通知中的附加数据传入 URL 来自己处理这个问题。然后,在您的应用程序中,您应该打开一个指向指定 url 的 web 视图。当点击通知时,仪表板上的 Launch URL 功能或 REST API 上的 url 字段会自动打开移动设备上的 web 浏览器。如果您想在您的应用程序而不是浏览器中打开 URL,您需要发送您的通知,其中包含您的应用程序 SDK 可以读取的自定义数据。如果您使用我们的仪表板发送通知,发送通知选项允许您在通知中包含要发送的其他数据。如果您使用我们的 API 发送通知,您可以将“数据”字段设置为额外自定义数据的 JSON 对象哈希。例如,targetUrlhttps://google.com作为值。然后在您的应用程序代码中,从 NotificationOpened 回调中的附加数据中读取 targetUrl 值(名称取决于所使用的 OneSignal SDK)。

于 2019-08-16T01:16:44.907 回答