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/
服务器配置在这里完成!
确保在您的应用标识符上启用了关联域
- 在开发人员处注册您的应用 。 苹果 .com。
- 在您的应用标识符上启用关联域 。
玩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};}
太棒了。现在,每次点击指定链接都会重定向到已安装的应用程序!