早上和UI刚谈到这个需求,然后自己试了一下,发现还是蛮简单的,记录一下:
思路分析:
iOS内应用之间跳转都会用到 URL Schemes这个东西,简单的讲,这个就是用来定义app身份的一个id识别,这里定义了之后,手机运行过这个app之后,会在系统内部记录下这里的身份识别,下次,其他app想访问该app,只要请求那里定义的URL Schemes,手机自己就能找到这个app,从而实现跳转。。。
好了,代码测试如下:
1、在项目里,Info最下端,找到URL Types,add一个新的Schemes:
这里的几个参数最好都填一下,但是URL Schemes是必填的。
info.plist添加说明
2、在AppDelegate里的 handleOpenURL 代理方法捕获跳转过来的监听,或者拿取传递的参数。
-(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url{ if (!url) { return NO; } NSString *urlStr = url.absoluteString; NSLog(@"handleOpenURL:%@",urlStr); return YES; }
3、打开模拟器的Safari,在地址栏输入: TestOC://
格式为:URL Schemes : // 3部分组成。
点击Open,就会跳转我的应用了,并且走到了handleOpenURL方法,并打印出了url。
这里,如果我想传递一些参数,该怎么做呢?
原理一样的:在 ://之后加上一段参数即可。
只需要这样写:
TestOC://userId:123&pwd:123
然后,我们再截取处理就可以了。
补充一下:如果想传递图片,可以利用系统的剪切板:UIPasteboard 很方便哦
PS:这里我为了省事,直接在地址栏输入的,正常情况下,在页面里,一般用link或button之类的,带上url就行了,使用原理还是一样的。
而且,这里浏览器其他也是一样的,用Safari只是为了举例。
大家快试试吧~~