• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - 为什么 Linking.getInitialURL 总是返回 null?

[复制链接]
菜鸟教程小白 发表于 2022-12-13 16:11:08 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我已成功使用深层链接从共享扩展程序打开我的应用。如果应用程序已经在运行,那么我使用 Linking.addEventListener('url', this.handleOpenURL);

获取 ComponentDidMount 中的信息

如果应用程序尚未运行,我希望能够按照文档 (https://facebook.github.io/react-native/docs/linking) 使用 Linking.getInitialURL();。除了它总是为我出现 null 。该链接是我的应用程序的打开方式,但无论如何,显示为空。我在 App.js 的 componentDidMount 中有该代码。

我正在使用 react-native 59.2。

这是我的 AppDelegate.m

#import "AppDelegate.h"

#import <React/RCTBundleURLProvider.h>
#import <React/RCTRootView.h>
#import <React/RCTLinkingManager.h>

@implementation AppDelegate

- (BOOL)applicationUIApplication *)application didFinishLaunchingWithOptionsNSDictionary *)launchOptions
{
  NSURL *jsCodeLocation;

  jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot"index" fallbackResource:nil];

  RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation
                                                      moduleName"MYMODULENAME"
                                               initialProperties:nil
                                                   launchOptions:launchOptions];
  rootView.backgroundColor = [UIColor blackColor];

  self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
  UIViewController *rootViewController = [UIViewController new];
  rootViewController.view = rootView;
  self.window.rootViewController = rootViewController;
  [self.window makeKeyAndVisible];
  return YES;
}

- (BOOL)applicationUIApplication *)application
            openURLNSURL *)url
            optionsNSDictionary<UIApplicationOpenURLOptionsKey,id> *)options
{
  return [RCTLinkingManager application:application openURL:url optionsptions];
}

- (BOOL)applicationUIApplication *)application continueUserActivityNSUserActivity *)userActivity
 restorationHandlervoid (^)(NSArray * _Nullable))restorationHandler
{
  return [RCTLinkingManager application:application
                   continueUserActivity:userActivity
                     restorationHandler:restorationHandler];
}

@end

如果应用程序已经在后台运行,getInitialURL() 返回启动它的链接,否则我得到 null。我希望获得启动应用程序的链接,即使它没有运行。



Best Answer-推荐答案


响应总是 null if 我正在远程调试。如果远程调试器关闭,那么我会得到正确的 url。由于无法 console.log,因此我使用了 Alert 进行确认。

关于ios - 为什么 Linking.getInitialURL 总是返回 null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55482111/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap