• 项目配置实现打开第三方应用


    1.需求:我们创建两个项目分别为TestDemo1何TestDemo2,现在需要在TestDemo1中通过一个按钮打开TestDemo2程序,需要下面这些配置;

    2.配置信息:首先配置TestDemo2中的plist文件:

    如下图所示:设置URL Schemes为music(URL Schemes建议都小写,因为之后接收到数据的时候,不区分大小写, 都是转为小写),URL identifier可选

    在TestDemo2中的APPdelegate中添加下面这个方法

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

    3.然后配置TestDemo1中的plist文件:

    TestDemo1中想打开TestDemo2程序可以调用下面的demo:

     NSString *telStr = @"music://test"; // 则需要打开的app就要配置这个协议
    
    NSURL *url = [NSURL URLWithString:telStr];
    
    UIApplication *app = [UIApplication sharedApplication];
    
    BOOL canOpen = [app canOpenURL:url];
    
    if (canOpen) { // 有安装app
    
    BOOL isOpen = [app openURL:url];
    
    NSLog(@"打开了app%d",isOpen);
    
    } else { // 没有安装app
    
    // 使用浏览器打开url
    
    }

    4.补充:如果使用模拟器,可能会报错:

    LaunchServices: ERROR: There is no registered handler for URL scheme xxx

    容易让人误解的是总以为自己缺少哪些东西没有配置,极有可能的问题是因为模拟器并未安装XXX所以才会导致。换成真机测试下即可

  • 相关阅读:
    【软件工程】 第1次团队作业
    Daily scrum 2015.10.19
    Buaaclubs的NABC与发布
    团队作业2
    团队介绍——窝窝头
    [Alpha阶段]第四次Scrum Meeting
    [Alpha阶段]第三次Scrum Meeting
    [Alpha阶段]第二次Scrum Meeting
    [Alpha阶段]第一次Scrum Meeting
    团队贡献分分配规则
  • 原文地址:https://www.cnblogs.com/sunjianfei/p/5520432.html
Copyright © 2020-2023  润新知