微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

当应用程序处于前台时,linking.addEventListener 不适用于 ios

如何解决当应用程序处于前台时,linking.addEventListener 不适用于 ios

对于ios,如果应用在前台时收到推送通知,当用户点击推送通知时,Linking.addEventListener不会被执行。

要求是在点击推送通知后将用户移动到特定页面

如果应用程序未运行或应用程序已打开但在后台在这两种情况下,Linking.addEventListener 都按预期工作。

**来自 appdelegate.m 的代码

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url
  sourceApplication:(Nsstring *)sourceApplication annotation:(id)annotation
{
  return [RCTLinkingManager application:application openURL:url
                      sourceApplication:sourceApplication annotation:annotation];
}

// Only if your app is using [Universal Links](https://developer.apple.com/library/prerelease/ios/documentation/General/Conceptual/AppSearch/UniversalLinks.html).
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity
 restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler
{
  return [RCTLinkingManager application:application
                   continueUserActivity:userActivity
                     restorationHandler:restorationHandler];
}

用于处理深层链接的 react-native 代码

if (Platform.OS === 'android') {
      Linking.getinitialURL().then(url => {
        const { navigate } = this.props.navigation;
        let c = url.replace("abcdapp://abcd/","")
        navigate(c)    
        });

    } else {
      Linking.addEventListener('url',this.handleOpenURL);
    }
    Linking.addEventListener('url',this.handleOpenURL);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。