您的位置:首页 > 其它

应用之间跳转

2014-12-22 15:47 260 查看
1.情景描述:实现带扫描二维码的第三方应用,扫面二维码后打开自己开发的APP。

2.原理:首先Schemes是在你的应用程序的info.plist里面定义的,在安装应用程序后.应用程序可以解析你的info.plist,如果检测到CFBundleURLTypes,会将相应Scheme注册到系统里面。如果有应用程序通过[[UIApplication sharedApplication]
openURL:url]打开了safari或者直接在safari里面输入URL.系统会检测URL,然后对照已经注册的scheme来启动相应的应用程序.比较常见的scheme有http,mailto,tel,sms. 当然你可以自己定义一个.   
    被启动的应用程序会调用
   
    -(BOOL)application:(UIApplication*)
application handleOpenURL:(NSURL *)URL  (4.2以前的iOS)
    或者
    - (BOOL)application:(UIApplication
*)application openURL:(NSURL  *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation (4.2以后的iOS)

3.实现

3.1 APP配置

(1)在info.plist里面,添加 URLTypes,然后在生成的URL Scheme输入你自己的定义的Scheme

    (2)在info.plist
里面添加URLSchemes,这个是对内的,相当于一个协议头,类似http,ftp,用来打开APP的url必须以这个开头

(3)URL identifier这个是对外的,如果在你的app中打开了另外的app这个值就会作为参数传过去。

3.2代码部分的实现

- (BOOL)application:(UIApplication
*)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
   //sourceApplication
打开本app的应用的URL Scheme的值
   //url
包含URLSchemes值的url
    
   //在这里进行一些判断,比如url为MosApp://m.text.cn/?id=123456
   if ([[url
host]isEqualToString:@"m.text.cn"])
    {
        //something
        
       return
YES;
    }
   else 
       return
NO;
}
3.3 测试
在浏览器中输入MosApp://m.text.cn/?id=123456试试吧,能打开就成功了。

本篇主要讲述怎通过URLSchemes打开指定APP的,二维码使用将在后边讲述。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息