iOS 浏览器或应用中启动应用

iPhone / iOS SDK 最酷的特性之一就是应用将其自身”绑定”到一个自定义 URL scheme 上,该 scheme 用于从浏览器或其他应用中启动本应用。
 
注册自定义 URL Scheme
  1. 注册自定义 URL Scheme 的第一步是创建 URL Scheme — 在 Xcode Project Navigator 中找到并点击工程 info.plist 文件。当该文件显示在右边窗口,在列表上点击鼠标右键,选择 Add Row:
  2. 向下滚动弹出的列表并选择 URL types。 
  3. 点击左边剪头打开列表,可以看到 Item 0,一个字典实体。展开 Item 0,可以看到 URL Identifier,一个字符串对象。该字符串是你自定义的 URL scheme 的名字。建议采用反转域名的方法保证该名字的唯一性,比如 com.yourCompany.yourApp。
  4. 点击 Item 0 新增一行,从下拉列表中选择 URL Schemes,敲击键盘回车键完成插入。 注意: URL Schemes 是一个数组,允许应用定义多个 URL schemes。  
  5. 展开该数据并点击 Item 0。你将在这里定义自定义 URL scheme 的名字。只需要名字,不要在后面追加 :// — 比如,如果你输入 iOSDevApp,你的自定义 url 就是 iOSDevApp:// 
此时,整个定义如下图: 


从 Safari 中调用自定义 URL Scheme
使用模拟器调用应用的步骤:
1. 在 Xcode 中运行应用
2. 一旦应用被安装,自定义 URL scheme 就会被注册
3. 通过模拟器的硬件菜单中选择 Home 来关闭应用
4. 启动 Safari
5. 在浏览器地址栏输入之前定义的 URL scheme

从另一个 iPhone 应用中调用自定义 URL Scheme
调用应用:(后面是要传递的参数)
NSString *customURL = @"iOSDevTips://?token=123abct&registered=1"; 
if ([[UIApplication sharedApplication] 
    canOpenURL:[NSURL URLWithString:customURL]]) //判断是否安装过某应用
  { 
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:customURL]]; 
  } 

 
  
被调用应用实现delegate:(接受参数)
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url 
        sourceApplication:(NSString *)sourceApplication annotation:(id)annotation 
{ 
  // Check the calling application Bundle ID 
  if ([sourceApplication isEqualToString:@"com.3Sixty.CallCustomURL"]) 
  { 
    NSLog(@"Calling Application Bundle ID: %@", sourceApplication); 
    NSLog(@"URL scheme:%@", [url scheme]); 
    NSLog(@"URL query: %@", [url query]); 
 
    return YES; 
  } 
  else 
    return NO; 
} 



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值