【问题标题】:How to make open App v/s URL when sending a branch.io URL through onesignal generated notification通过onesignal生成通知发送branch.io URL时如何打开App v/s URL
【发布时间】:2016-11-17 19:39:43
【问题描述】:

在 IOS 上 - 通知打开浏览器与应用程序。

使用单信号通知。分支 URL 设置为通知的附加数据。在 OneSignalHandleNotificationBlock 中重新获取它并将您的 web 视图指向它。

在 Branch 的开发说明中看到,完成这项工作的一种方法是 -

您可以使用带有推送通知的分支链接。创建推送通知时,您应该在 userInfo 字典中指定 Branch 链接。 应该是一个NSString,userInfo中的key应该是Branch。 示例:@{ @"branch" : @"https://[branchsubdomain]/ALMc/e03OVEJLUq" }

然后设置 didReceiveRemoteNotification - - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo { [[Branch getInstance] handlePushNotification:userInfo];

// ... handle push notifications that do not include Branch links

}

我无法完成这项工作。

之前有没有其他人遇到过类似的情况 - 在单一信号通知中处理分支 URL?

对于有 OneSignal 经验的人 - 如何在 Apple Push Notification Payload 中将这个键:值对作为分支发送:“branch_link”?

对于在分支方面有经验的人 - 分支如何在 Apple 推送通知有效负载中期待它。

【问题讨论】:

  • 因此,如果应用程序未运行,则在 IOS 中似乎会调用 application:didFinishLaunchingWithOptions 通知。当应用程序处于活动状态或在后台运行时 - application:didReceiveRemoteNotification 会根据通知调用。
  • 1) ​​那么我们应该在上述两个方法中都添加OneSignalHandleNotificationBlock​吗?​而这里我们从附加数据中检索URL?
  • 2) ​那么我们应该在上面的两个方法中添加[[Branch getInstance] handlePushNotification:userInfo];​吗?​
  • 3)​最大的困惑是 - 应该如何处理您可以使用带有推送通知的分支链接的分支要求。创建推送通知时,您应该在 userInfo 字典中指定 Branch 链接。应该是一个NSString,userInfo中的key应该是Branch。因此,例如:@{ @"branch" :@"https://[branchsubdomain]/ALMc/e03OVEJLUq" }。
  • 4) ​问题 - 我们如何自定义通知数据,使其 SDK 可以解析它,通过他们建议的示例:@{ @"branch" : @"https:// [分支子域]/ALMc/e03OVEJLUq" }​?

标签: ios objective-c apple-push-notifications branch.io onesignal


【解决方案1】:

目前,OneSignal 本身不支持深度链接。我亲自了解了 Branch SDK 以及它们如何与 OneSignal 集成。在大多数情况下,这两个 SDK 可以并行工作而不会出现任何问题。在推送通知中发送深层链接时,使用 Branch 的实现将要求您自定义通知数据,以便他们的 SDK 可以解析它,通过他们建议的
示例:@{ @"branch " : @"https://[branchsubdomain]/ALMc/e03OVEJLUq" }.

我目前建议将相关数据作为创建通知 api 的 additionalData 部分发送,并通过重定向到其中的特定视图来处理 OneSignalHandleNotificationBlock 中的响应应用程序(如果深度链接到自己),或者通过UIApplication openURL 方法在 Safari 中打开链接,因为这样做通常比在嵌入式 UIWebView 中更安全。

【讨论】:

  • 分公司已经推荐 - dev.branch.io/getting-started/deep-link-routing/advanced/ios/…。我们是否应该从 application:didFinishLaunchingWithOptions 和 application:didReceiveRemoteNotification 中调用 initWithLaunchOptions。一旦我们得到额外的数据 - 有没有办法设置 userInfo 然后我们调用 Branch 来处理通知?
  • 您应该只从 App Delegate 的 didFinishLaunchingWithOptions 调用 initWithLaunchOptions 并在需要时包含一个 handleBlock 以使用附加数据。您还可以覆盖 didReceiveRemoteNotification 以仅包含对分支 SDK 的调用。
猜你喜欢
  • 2019-11-28
  • 1970-01-01
  • 2021-01-12
  • 1970-01-01
  • 2012-07-12
  • 1970-01-01
  • 2023-03-27
  • 1970-01-01
  • 2018-01-22
相关资源
最近更新 更多