iOS上自定义URL Schemes

   iPhone上URL Schemes的作用为应用程序提供了一个其他应用程序或者safari可以启动他的方法.就像Android上intent一样.只不过Intent的功能要比URL Schemes强很多.多为一个多任务的操作系统,苹果还有很长的路要走.虽然他一直用耗电作为借口.但实际上,iPhone4在使用过程中并不省电.... 回到话题.

     原理很简单,首先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)

 

  这个函数返回的是bool值,他的返回值指明了是否根据URL的内容是否合法来打开指定的应用程序.当你的应用程序定义了一个scheme可以让别人打开的话,并且需要接受一些参数作为启动参数的时候.这是非常危险的.因此需要对接受到的URL进行检查,如果符合你的要求,那就打开应用程序,如果不符合,可以拒绝打开!

  原理解释完了,如果你懂了,继续看,不懂再看一边@_@.

   要实现这么一个功能,具体步骤如下:

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

  (2)在info.plist 里面添加CFBundleURLName;他是你的scheme的一个别名.具体如下Defining a custom URL scheme in the Info.plist file

 

  好吧,编译上传模拟器或者真机,在safari里面输入 schemes://url 来测试下能否启动你的应用程序^_^

  上述例子为todolist://balabala..

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值