Urban Airship远程通知启动的深层链接 - IOS

时间:2016-06-06 16:47:25

标签: ios iphone push-notification react-native urbanairship.com

我正在使用react-native来运行我的ios应用程序,而且我目前已成功通过城市飞艇进行推送通知。我也有深层链接工作,但只在几种不同的情况下:

  • 通过使用指定的网址模板(" my_template:// my_url")点击网址链接,从其他应用程序(注释)启动应用程序,应用程序成功打开并调用深层链接。
  • 应用程序已在后台打开,应用程序将使用城市飞艇发送的具有深层链接操作的推送通知打开。这将从后台打开应用程序并执行深层链接
  • 我需要在点击城市飞艇的推送通知时启动应用程序并执行深层链接,但是现在它只会启动应用程序而深层链接只会执行该应用程序已经在后台。

    以下是我在AppDelegate.m中执行城市飞艇通知的代码(仅显示相关代码):

    #import "AppDelegate.h"
    #import "RCTRootView.h"
    #import "RCTLinkingManager.h"
    #import <AirshipKit/AirshipKit.h>
    
    @implementation AppDelegate
    
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
        [UAirship takeOff];
        [UAirship push].userPushNotificationsEnabled = YES;
    
        return YES;
    }
    
    - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
    {
      return [RCTLinkingManager application:application openURL:url sourceApplication:sourceApplication annotation:annotation];
    }
    

    在上面的代码中,只在上面列出的两种情况下调用openURL参数。

    处理不同的城市飞艇情况,但无法让它们发挥作用。 UASituation documentation

    1 个答案:

    答案 0 :(得分:0)

    该动作什么时候不起作用?

    深层链接操作有一个默认谓词,拒绝UASituationForegroundPush情况。这是为了防止应用程序在前台收到推送时自动深度链接。您可以使用以下内容远程执行谓词:

    [[UAirship shared].actionRegistry updatePredicate:nil
                                     forEntryWithName:kUADeepLinkActionDefaultRegistryName];