IOS 应用跳转 (IOS9白名单)

跳转到指定app的实现

IOS中应用的跳转是通过URL实现的,因此在实现应用跳转之前我们要设置一下对应的URL。

图一(寻找配置软件的URL)

图二(具体配置选项)

注意:

如果IOS版本为IOS9 我们需要为app设置白名单。

实现跳转的前提是有这个app,因此我们需要把被跳转的app先运行,即安装到模拟器中。

如图三(在info中添加)

效果图四

代码:

//
//  ViewController.m
//  X
//
//  Created by ma c on 16/4/9.
//  Copyright ? 2016年 bjsxt. All rights reserved.
//

#import "ViewController.h"

@interface ViewController ()
@property (weak, nonatomic) IBOutlet UIButton *button;

@end

@implementation ViewController
- (IBAction)GoU:(id)sender {

    //获取跳转app的URl
    NSURL * url = [NSURL URLWithString:@"U://"];
    //判断手机中是否安装了对应的app
    if ([[UIApplication sharedApplication] canOpenURL:url]) {
        //打开应用程序
        [[UIApplication sharedApplication]openURL:url];
    }
}
- (void)viewDidLoad {
    [super viewDidLoad];
}
@end

为了证明实现的是app之间的跳转:另附两张app的故事板截图

X:图五

U:图六

跳转到指定页面的实现

前提:我们想要从X跳转到U的朋友圈。

那么X的代码如下:

//
//  ViewController.m
//  X
//
//  Created by ma c on 16/4/9.
//  Copyright ? 2016年 bjsxt. All rights reserved.
//

#import "ViewController.h"

@interface ViewController ()
@property (weak, nonatomic) IBOutlet UIButton *button;

@end

@implementation ViewController
- (IBAction)GoU:(id)sender {

    //获取跳转app的URl
    NSURL * url = [NSURL URLWithString:@"U://"];
    //判断手机中是否安装了对应的app
    if ([[UIApplication sharedApplication] canOpenURL:url]) {
        //打开应用程序
        [[UIApplication sharedApplication]openURL:url];
    }
}
- (IBAction)GoFriend:(id)sender {
    //获取跳转朋友圈的URl
    NSURL * url = [NSURL URLWithString:@"U://friend"];
    //判断手机中是否安装了对应的app
    if ([[UIApplication sharedApplication] canOpenURL:url]) {
        //打开朋友圈
        [[UIApplication sharedApplication]openURL:url];
    }
}
- (void)viewDidLoad {
    [super viewDidLoad];
}
@end

我们不能仅仅对X进行设置更要对U进行设置。

对U的代码操作在Appdeledate中。

代码如下:

- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options{

    //将url转为字符串
    NSString * urlString = url.absoluteString;
    //判断是通过什么跳转过来的
    if ([urlString containsString:@"friend"]) {
        NSLog(@"在这里执行页面跳转即可。");
    }
    return YES;
}

效果图七如下

时间: 2025-01-06 23:09:02

IOS 应用跳转 (IOS9白名单)的相关文章

iOS9 白名单问题 -canOpenURL: failed for URL: &quot;xx&quot; - error:&quot;This app is not allowed to query for scheme xx&quot;

[iOS开发]-canOpenURL: failed for URL: "xx" - error:"This app is not allowed to query for scheme xx" Collection/Bookmark/Share for width under 768px 控制台输出 如图是在我启动一个 Xcode 7 + iOS 9 的 App 之后,控制台的输出. 这在 Xcode 6.4 + iOS 8 时,是不会有的情况,原因是[为了强制增

iOS9中如何适配http,Bitcode,设置sina,qq,weChat配置Scheme白名单

iOS9.0SDK在编译的时候,默认所有从NSURLConnection.CFURL和NSURLSession发出的http请求,都改为https请求.由于AFNetworking版本底层是用了NSURLConnection,所以使用AFNetworking的app都将受到影响.对于这个问题的解决办法有三种,一:让服务器更新,使用https,以解析相关的数据. 二:在info.plist做些配置,让其暂时倒回到不安全的网络传输协议(http协议).下面详细来说下这两种方案. 方案一:让服务器更新

适配iOS9遇到的一些问题_Scheme白名单_ Bitcode及解决办法

升级Xcode7 运行项目发现报错如下: 1.Scheme白名单问题 -canOpenURL: failed for URL: "weixin://app/wxdaae92a9cfe5d54c/" - error: "This app is not allowed to query for scheme weixin" 搜索后得知 近期苹果公司iOS 9系统策略更新,限制了http协议的访问,此外应用需要在"Info.plist"中将要使用的UR

iOS9 URL Schme 白名单

原文地址: https://github.com/ChenYilong/iOS9AdaptationTips WWDC 2015 Session 703: "Privacy and Your App( 时间在30:18左右)关于 URL scheme 的介绍,指出: 也就是说:在iOS9中,如果使用 canOpenURL: 方法,该方法所涉及到的 URL scheme 必须在"Info.plist"中将它们列为白名单,否则不能使用.key叫做LSApplicationQuer

项目适配iOS9遇到的一些问题及解决办法 ,以及URL 白名单配置方法

1.网络请求报错.升级Xcode 7.0发现网络访问失败.输出错误信息 The resource could not be loaded because the App Transport Security policy requires the use of a secure connection. 原因:iOS9引入了新特性App Transport Security (ATS).详情:App Transport Security (ATS)新特性要求App内访问的网络必须使用HTTPS协议

iOS9适配 之 关于info.plist 第三方登录 添加URL Schemes白名单

近期苹果公司iOS 9系统策略更新,限制了http协议的访问,此外应用需要在“Info.plist”中将要使用的URL Schemes列为白名单,才可正常检查其他应用是否安装. 受此影响,当你的应用在iOS 9中需要使用 QQ/QQ空间/支付宝/微信SDK 的相关能力(分享.收藏.支付.登录等)时,需要在“Info.plist”里增加如下代码: <key>LSApplicationQueriesSchemes</key> <array> <!-- 微信 URL S

通过网站不能跳转登录的案例来看IP白名单的设置

最近在公司遇到一个问题,进入公司的游戏产品官网注册一个普通用户账号,登录官网 然后点击进入该游戏产品的论坛,不能自动跳转到论坛实现自动登录 于是自己去官网注册了一个普通用户账号,登录官网,测试看看,发现确实不能自动跳转到论坛 登录论坛的服务器数据库,查看到数据库里已经有刚刚注册的用户数据了,但密码没有同步过来 经过和开发的一起分析和故障排查,发现一个报错程序 com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communicatio

iOS白名单设置

在做分享.支付的时候需要跳转到对应的app,这里有需要设置的白名单列表<key>LSApplicationQueriesSchemes</key> <array> <!-- 微信 URL Scheme 白名单--> <string>wechat</string> <string>weixin</string> <!-- 新浪微博 URL Scheme 白名单--> <string>sin

ios 白名单

从xcode7开始,程序里面所有的其他网络连接都得添加在白名单里面,不然是无法响应的! 解决方案: 在plist文件中里面添加一个key为“LSApplicationQueriesSchemes”数组值,里面添加包括string型的“scheme”,其他的可根据需求依次添加. 如:需要qq登录也分享 添加:mqqapi.mqq.mqqopensdkapiV2.mqqOpensdkSSoLogin.mqzone.mqzoneopensdkapiV2.mqzoneopensdkapi