iOS开发 - 应用内打开第三方应用并传值

首先说下这个功能, 应该都有接触过。比如,你下载了一个电子书,然后选择打开方式的时候,可能会看到你手机中已经安装的阅读类App。或者,你的QQ收到了某个文件,你也可以选择本地的应用来打开。那这样的功能,是怎么实现的呢?简单来说。就是调用URL来实现第三方应用的开启。

首先,被打开的应用需要提供这个功能, 也就是,它需要注册一个 URL Schemes,供第三方使用。

如果你想你的应用被调用, 你可以这样设置。在 xxxx info.plist 文件中, 添加如下属性类似这样:

注意, 这里的URL Schemes必填, URL identifier选填。

另外,URL Schemes建议都小写,因为之后接收到数据的时候,不区分大小写, 都是转为小写。

规定的格式是   URL Schemes://URL identifier

之后, 你需要在 Appdelegate.m中添加如下代码, 来处理接受到请求后做出的处理

//处理URL请求
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
{	
  NSLog(@"%@", url);		
if ([[url scheme] isEqualToString:@"myurltest"])	
{
    //处理链接		
    NSString *text = [[url host] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];	
    UIAlertView *myAlert = [[UIAlertView alloc]initWithTitle:@"新消息" message:text delegate:self cancelButtonTitle:@"知道了" 
        otherButtonTitles: nil];		
    [myAlert show];				
    return YES;
 }		
    return NO;
}

这里我写了个示范, 判断是否是打开本应用的URL, 如果是, 就弹出一个警告框,显示传来的数据。

当然,传来的数据要怎么处理, 那看你自己了。之后, 第三方应用就可以直接调用打开它了。

我们做个简单示范, 用Safari来直接打开。

这里输入myurltest://hello   表示打开的应用的URL Schemes是 myurltest, 传入的数据是hello

当然, 在应用中打开,我们可以使用如下方法:

NSURL *url= [NSURL URLWithString:@"myurltest:"];[[UIApplication sharedApplication] openURL:url];
有些常用的app  都可以查得到他们对应的 URL Schemes

有什么问题也欢迎朋友们指出来,然后一起探讨一下

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值