==================执行跳转的APP=================
//
// ViewController.m
// 系统应用跳转
//
// Created by dc0061 on 16/1/6.
// Copyright © 2016年 dc0061. All rights reserved.
//
#import "ViewController.h"
@interface ViewController ()
- (IBAction)search:(id)sender;
@property (weak, nonatomic) IBOutlet UITextField *strUrl;
- (IBAction)jumpApp:(id)sender;
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
#pragma mark 跳转到网页
- (IBAction)search:(id)sender {
NSString *str = _strUrl.text;
[self openUrl:str];
}
//跳转到别的安装的应用---7.0以前需要增加一个白名单:增加方法,在plist文件里面增加一个LSApplicationQueriesSchemes节点,类型是array,在数组里面增加一个子项目,将你要跳转的那个应用设置的 URL Schemes填写在里面
//URL Schemes 设置方法,被跳转的应用里点击项目名称-->info-->底部URL Types点开,在里面增加一项并且给URL Schemes添加一个名称
//7.1 之后需要在给identifier 设置一个名称,并且跳转的应用 General-->Bundle identifler需要设置一个名称,并且要和被跳转应用identifier里面设置的名称一致
#pragma mark 跳转到app
- (IBAction)jumpApp:(id)sender {
NSString *str = @"app://name=jack";
[self openUrl:str];
}
- (void) openUrl : (NSString *) strUrl{
NSURL *url = [NSURL URLWithString:strUrl];
UIApplication *app = [UIApplication sharedApplication];
//判断手机里面是否安装该应用
if (![app canOpenURL:url]) {
NSLog(@"无法打开%@,请确保应用已正确安装",url);
}else{
//打开应用
[app openURL:url];
}
}
@end
=================被跳转的app=================
//AppDelegate 里面添加如下代码
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window.backgroundColor = [UIColor whiteColor];
self.viewcon = [[ViewController alloc]init];
self.window.rootViewController = self.viewcon;
return YES;
}
//从另外一个app 里面跳过来时会执行的方法
- (BOOL) application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options{
self.viewcon.label.text=[NSString stringWithFormat:@"%@",url];//给页面里面的控件赋值
return YES;
}