博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
应用间跳转
阅读量:6768 次
发布时间:2019-06-26

本文共 3285 字,大约阅读时间需要 10 分钟。

hot3.png

URL:统一资源定位符 tel://110   file:///apple/Desktop/

 协议头Scheme:http:// tel:// file://

 资源路径path:www.baidu.com 110 /apple/Desktop/

要想实现应用间的跳转,必须配置协议头

 项目->info->url types -> + ->配置协议头

示例:

新闻应用:

@interface ViewController ()/** *  点击之后跳转到微信 */- (IBAction)jump;/** *  点击微信好友按钮跳转到微信 */- (IBAction)sesstion;/** *  点击朋友圈按钮跳转到微信 */- (IBAction)timeline;@end@implementation ViewController// 跳转到主页- (IBAction)jump {    [self openWeiXin:@"weixin://"];}// 跳转到好友列表- (IBAction)sesstion {    [self openWeiXin:@"weixin://session?news"];}// 跳转到朋友圈- (IBAction)timeline {    [self openWeiXin:@"weixin://timeline"];}- (void)openWeiXin:(NSString *)urlStr{    // 1.创建要打开的App的URL    NSURL *weixinURL = [NSURL URLWithString:urlStr];        // 2.判断是否该URL可以打开    if ([[UIApplication sharedApplication] canOpenURL:weixinURL]) {                // 3.打开URL        [[UIApplication sharedApplication] openURL:weixinURL];    }}@end
微信应用:

AppDelegate

@implementation AppDelegate- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    // Override point for customization after application launch.    return YES;}/** *  当通过别应用打开该应用的时候会执行该方法 * *  @param url               通过哪一个URL跳转过来的 */- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{    // 取出来根控制器    UINavigationController *rootNav = (UINavigationController *)self.window.rootViewController;        [rootNav popToRootViewControllerAnimated:NO];        // 取出ViewController    ViewController *mainVc = [rootNav.childViewControllers firstObject];        NSString *urlStr = url.absoluteString;    if ([urlStr rangeOfString:@"session"].length) {                mainVc.appURLStr = urlStr;                // 跳转到微信好友界面        [mainVc performSegueWithIdentifier:@"session" sender:nil];            } else if ([urlStr rangeOfString:@"timeline"].length){        // 跳转到朋友圈界面        [mainVc performSegueWithIdentifier:@"timeline" sender:nil];    }        return YES;}@end

ViewController

#import 
@interface ViewController : UIViewController@property(nonatomic,copy)NSString *appURLStr;@end
#import "ViewController.h"#import "SessionViewController.h"@interface ViewController ()@end@implementation ViewController- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{    if ([segue.identifier isEqualToString:@"session"]) {        SessionViewController *sessionVc = segue.destinationViewController;        sessionVc.appURLStr = self.appURLStr;    }}@end

SessionViewController

#import 
@interface SessionViewController : UIViewController@property(nonatomic,copy)NSString *appURLStr;@end
#import "SessionViewController.h"@interface SessionViewController ()/** *  返回到跳转过来的APP */- (IBAction)backToApp;@end@implementation SessionViewController- (IBAction)backToApp {    NSRange range = [self.appURLStr rangeOfString:@"?"];    NSString *appStr = [self.appURLStr substringFromIndex:(range.location + 1)];        NSString *appURL = [NSString stringWithFormat:@"%@://", appStr];        NSURL *url = [NSURL URLWithString:appURL];        if ([[UIApplication sharedApplication] canOpenURL:url]) {        [[UIApplication sharedApplication] openURL:url];    }}@end

转载于:https://my.oschina.net/yejiexiaobai/blog/800773

你可能感兴趣的文章
『算法设计_伪代码』快速排序
查看>>
LoadRunner使用教程
查看>>
javascript进行遍历
查看>>
npm 模块化方式接入 font-awsome
查看>>
【七牛云】使用七牛云进行文件上传业务,图片处理,缩放等业务 详情查看七牛云使用说明...
查看>>
Perl匿名数组、hash和autovivification特性
查看>>
协变、逆变总结
查看>>
springboot mybatis 分页整合
查看>>
SpringBoot------自定义Logback日志
查看>>
180227
查看>>
18-(基础入门篇)GPRS(Air202)拨打电话
查看>>
解决Nginx出现403 forbidden (13: Permission denied)报错的四种方法
查看>>
Spark:实现行转列
查看>>
js Object.create 初探
查看>>
增量更新
查看>>
js 原型链 prototype __proto__
查看>>
Could not find com.android.tools.build:aapt2:3.2.0-alpha14-4748712.
查看>>
MS BizSpark计划-免费提供软件和服务
查看>>
『转载』NetBeans开发J2ME手机程序之——文件浏览器
查看>>
软件测试之魂:核心测试设计精解(第2版)
查看>>