繁体   English   中英

远程通知启动时城市飞艇深层链接-iOS

[英]Urban Airship deep link on remote notification launch - IOS

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

  • 通过使用指定的URL模板(“ my_template:// my_url”)单击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文档

    什么时候对您不起作用?

    深度链接操作具有默认谓词,该谓词拒绝UASituationForegroundPush情况。 如果在前台收到推送,那可以防止应用程序自动进行深层链接。 您可以使用以下命令远程谓词:

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

    暂无
    暂无

    声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

     
    粤ICP备18138465号  © 2020-2024 STACKOOM.COM