React Native 0.78.1 AppDelegate.swift配置DeepLinks求助
React Native 0.78.1(非Expo)Deep Links Swift 实现方案
问题背景
为非Expo环境的React Native 0.78.1应用添加Deep Links支持时,发现官方文档仅提供了Objective-C版本的AppDelegate.m实现代码,但当前项目生成的是AppDelegate.swift,需要对应的Swift实现。
Swift 版本完整实现
在你的AppDelegate.swift文件中,按以下步骤修改:
- 导入必要模块
在文件顶部添加导入语句:
import React
- 实现
openURL方法
在AppDelegate类中添加以下方法:
func application(_ application: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool { return RCTLinkingManager.application(application, open: url, options: options) }
- 实现
continueUserActivity方法
同样在AppDelegate类中添加以下方法:
func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool { return RCTLinkingManager.application(application, continue: userActivity, restorationHandler: restorationHandler) }
完整示例片段
修改后的AppDelegate.swift核心部分如下:
import UIKit import React @main class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { // 原有初始化代码... return true } // 添加Deep Links支持:openURL方法 func application(_ application: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool { return RCTLinkingManager.application(application, open: url, options: options) } // 添加Deep Links支持:continueUserActivity方法 func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool { return RCTLinkingManager.application(application, continue: userActivity, restorationHandler: restorationHandler) } // 其他原有方法... }
内容的提问来源于stack exchange,提问作者RJM
相关产品推荐
相关产品推荐

