iOS APP打开其他应用

1、限于iOS的沙盒机制,一般的app都只在沙盒内操作运行,针对app之间的通讯苹果还是给出了一些解决方案的。

最常见的场景就是在一个APP中打开另一个APP。
核心就是一个API,通过制定一个一个URL,打开一个app

            [[UIApplication sharedApplication] openURL:url];

2、不过在这之前,我们还需要做一些配置。我们需要在info.plist里配置需要打开的app的URL scheme,一些常用的app scheme自行百度。

    <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);
    }
}

3、如果想要让其他APP能跳转到自己的应用可以在info.plist 里设置一个或多个 urlTypes

    <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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值