最常见的场景就是在一个APP中打开另一个APP。
核心就是一个API,通过制定一个一个URL,打开一个app
[[UIApplication sharedApplication] openURL:url];
<key>LSApplicationQueriesSchemes</key>
<array>
<string>wechat</string>
<string>weixin</string>
<string>twitter</string>
</array>
在打开URL的时候要先判断URL是否有效。然后才能做跳转操作
写一个跳转的判断方法。
- (void)checkWhetherHasInstalledAppWithUrlSchemes:(NSString *)urlSchemes {
NSURL *url = [NSURL URLWithString:urlSchemes];
if ([[UIApplication sharedApplication] canOpenURL:url]) {
NSLog(@"%@ 有效" ,urlSchemes);
[[UIApplication sharedApplication] openURL:url];
}else {
NSLog(@"%@ 无效" ,urlSchemes);
}
}
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLSchemes</key>
<array>
<string>demos</string>
</array>
</dict>
</array>
然后在AppDelegate里做个可以跳转的权限配置(iOS 9 以后)
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options{
NSLog(@"func: %s url:%@ ",__func__,[url absoluteString]);
return YES;
}
验证的话,跑真机,只需要在 safari里输入 demos://。按照提示就可以跳转了。
原文:https://www.cnblogs.com/wjw-blog/p/10684671.html