React Native iOS 9或更高版本中的通用链接

如果应用程序已安装在设备中,则打开一个指向应用程序的https://链接;如果未将应用程序安装在设备中,则继续在safari中打开。

每当用户简单地点击链接时,React Native iOS中的通用链接将重定向到已安装的应用程序,而无需在野生动物园中加载链接。

如何在iOS 9或更高版本中设置通用链接?

步骤1 :确保您的服务器在HTTPS上运行,因为apple-app-site-association文件将仅通过HTTPS提供

第2步:创建不含.json的 apple-app-site-association JSON文件并使用以下内容进行更新–

请确保AASA文件:

  • 通过HTTPS提供。
  • 使用application / json MIME类型。
  • 不要附加 .json
  • 大小不超过128 Kb(iOS 9.3.1及更高版本中的要求)。

必须在apple-app-site-association中添加活动继续

  { 
“ activitycontinuation”:{
“应用”: [
“ 。”
]
},
“应用链接”:{
“应用”: [],
“细节”: [{
“ appID”:“ 。”,
“路径”:[“ ”]
}]
}
}例:{
“ activitycontinuation”:{
“应用”: [
“ MJ19050596.com.apple.app”
]
},
“应用链接”:{
“应用”: [],
“细节”: [{
“ appID”:“ MJ19050596.com.apple.app”,
“路径”:[“ post / *”]
}]
}
}

步骤3 :将apple-app-site-association文件上传到服务器上的根目录或.well-known目录

https:// <> / apple-app-site-association或位于https:// <> /。well-known / apple-app-site-association

步骤4 :使用apple-app-site-association(AASA)验证程序进行测试https://branch.io/resources/aasa-validator/

服务器配置在这里完成!

确保在您的应用标识符上启用了关联域

  1. 开发人员处注册您的应用苹果 .com。
  2. 在您的应用标识符启用关联域

玩Xcode并按照以下步骤操作–

步骤1 :启用关联的域

选择功能选项卡并启用关联域

  • 在X代码中,打开“关联域”。
  • 在您的域名前添加带有applinks:的域名applinks:代替https://
  applinks:example.abc.comactivitycontinuation:example.abc.com 

步骤2:将权利文件添加到您的项目中,然后在权利文件检查器中检查“目标成员身份”

如果您无法检查目标会员资格,那么

选择构建阶段,然后在副本捆绑资源下添加权利

它允许检查目标会员

步骤3 :将RCTLinking添加到您的项目

步骤4: 更新AppDelegate.m

将以下内容添加到AppDelegate.m文件:

  -(BOOL)应用程序:(UIApplication *)应用程序openURL:(NSURL *)urlsourceApplication:(NSString *)sourceApplication注释:(id)注释{返回[RCTLinkingManager应用程序:应用程序openURL:urlsourceApplication:sourceApplication注释:annotation];}-( BOOL)应用程序:(UIApplication *)应用程序continueUserActivity:(NSUserActivity *)userActivity restoreHandler:(void(^)(NSArray * _Nullable))restorationHandler {返回[RCTLinkingManager application:applicationcontinueUserActivity:userActivityrestorationHandler:restorationHandler];} 

添加以下内容以处理应用程序中的链接

  componentDidMount(){if(Platform.OS ==='android'){Linking.getInitialURL()。then(url => {this.navigate(url);});  } else {Linking.addEventListener('url',this.handleOpenURL);  }} componentWillUnmount(){Linking.removeEventListener('url',this.handleOpenURL);  } handleOpenURL =(event)=> {this.navigate(event.url);  } navigation =(url)=> {//在此处处理url};} 

太棒了。现在,每次点击指定链接都会重定向到已安装的应用程序!