• universal link使用


    iOS9之后,苹果推出了universal link方案,该方案较url scheme有明显的改善。url scheme很难做到唯一。

    而 universal link却是你自己控制的。

    1、有一个HTTPS 的web server服务器,这个域名就是用来做universal link的。 

    2、建立一个json文件,命名为apple-app-site-association 注意不要有后缀。文件里的内容为一段json:

    {
    "applinks": {
    "apps": [],
    "details": [
    {
    "appID": "TEAMID.BUNDLEID",
    "paths": [ "*"]
    }
    ]
    }
    }

    //TEAMID替换为你的付费Apple ID的team id. BUNDLEID替换为你的应用的包名

    paths为路径,* 万能匹配符,具体的路径可以在数组中添加。

    将apple-app-site-association这个文件上传到HTTPS web服务器根目录或者.well-known的子目录。

    3、配置Xcode.打开Capabilities里的Associated Domains,在里面添加你的web server域名。

    格式为:applinks:baidu.com //baidu.com替换为你的web server域名,注意域名的正确性,后面不要有/结束符,以applinks:为前缀

    确保在开发者后台Apple Developer网站你的App Id包含Associated Domains功能。

    4、在AppDelegate的代理方法中处理用户的点击事件

    -(BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler{

        // NSUserActivityTypeBrowsingWeb 由Universal Links唤醒的APP

        if ([userActivity.activityType isEqualToString:NSUserActivityTypeBrowsingWeb]) {

            NSURL *webpageURL = userActivity.webpageURL;

            NSString *host = webpageURL.host;

            if ([host isEqualToString:@"api.r2games.com.cn"]) {

                //进行我们需要的处理

                NSLog(@"TODO....");

            } else {

                NSLog(@"openurl");

                [[UIApplication sharedApplication]openURL:webpageURL options:nil completionHandler:nil];

    //            [[UIApplication sharedApplication]openURL:webpageURL];

            }

        }else{

            NSLog(@"UNKNOWN");

        }

        return YES;

    }

     

     

    测试:苹果提供了一个链接来测试你的apple-app-site-association文件是否有效。

    测试会告诉你哪些地方需要改进,测试没有通过也没有关系,可以直接在浏览器输入你配置的web server域名来测试。

    https://search.developer.apple.com/appsearch-validation-tool/

    universal link的一个好处了,这个网页你可以在里面做很多处理,包括用户的点击响应。如果手机上装了该app,则网页会提示在app中打开。如果没有安装app的话也可以引导玩家去苹果商店下载。

  • 相关阅读:
    网页背景音乐
    CSS 实现背景半透明
    实战中总结出来的CSS常见问题及解决办法
    AsyncTask的简单使用
    ORMLiteDatabase的简单使用并且与其他的表相互联系
    传递消息--第三方开源--EventBus的简单使用
    通过messenger实现activity与service的相互通信
    通过Messenger与后台连接(单向操作,activity向service发送数据)
    怎么做QQ、微信等消息气泡
    通过bind实现activity与service的交互
  • 原文地址:https://www.cnblogs.com/shycie/p/7767577.html
Copyright © 2020-2023  润新知