微信中经过页面(H5)直接打开本地app的解决方案

简述

微信中经过页面直接打开app分为安卓版和IOS版,两个的实现方式是彻底不一样的。html

安卓版实现:使用腾讯的应用宝,只要配置了“微下载”以后,打开连接腾讯会帮你判断本地是否已经安装了app,若是本地安装就直接打开,没有安装的话就是腾讯微下载的页面进行app下载,固然微下载的页面腾讯提供了几个模板,能够本身选择和修改。ios

IOS实现:ios像直接点击连接打开本地app就难了,有两种方式可供咱们选择:服务器

  1.腾讯深度合做的公司,微信能够帮你打开app;微信

  2.使用IOS9+的新功能“Universal Links”(通用连接);app

很显然,第二种方式更适合咱们普通的公司。dom

 

效果展现

 

 

实现步骤

1.配置https(必须是https)网站支持;ide

建立“apple-app-site-association”文件,注意不带后缀,放到网站根目录,确保可使用:https://xxx.xxx.xxx/apple-app-site-association直接能够访问,apple-app-site-association文件内容以下:测试

{
    "applinks": {
        "apps": [],
        "details": [
            {
                "appID": "*****.com.gangguwang.yewugo",
                "paths": [ "/app/*" ]
            }
        ]
    }
}

其中appId是你的Prefix + ID,如图:网站

 

paths为你连接拦截的地址,好比我上面填写的是“/app/*”,就是当我访问https://xxx.xxxx.xxx/app/x的时候,会打开本地app,其余链接时候则为正常显示,这个地址能够配置成多个,也能够直接写*;ui

 

2.配置苹果证书,开启“Associated Domains”,以下图:

Identifiers - App IDs –Edit 而后开启打钩 Associated Domains 后保存,配置地址:https://developer.apple.com/account/ios/identifier/bundle

 

3.配置你的App的Universal Links(通用连接)

若是你是普通的ios项目的的话,配置以下:项目 targets->Capabilities->Associated Domains,如图填写你的连接域名

域名的格式必须为:applinks:你的域名(ex:applinks:www.domain.com),能够配置多个;

若是你是Xamarin项目的话,须要选择Entitlements.plist配置关联域,如图:

 

这样配置完以后,打包便可测试你的应用咯。

官方配置文件:https://developer.apple.com/library/content/documentation/General/Conceptual/AppSearch/UniversalLinks.html#//apple_ref/doc/uid/TP40016308-CH12-SW2

 

扩展知识(关于Xamarin)

若是你要处理连接打开本地app并跳转到相应的详情页的话,须要这样实现:

1.在你的xxx.iOS项目打开“AppDelegate.cs”文件;

2.重写方法,代码以下:

 

public override bool ContinueUserActivity(UIApplication application, NSUserActivity userActivity, UIApplicationRestorationHandler completionHandler)
{
    if (userActivity.ActivityType == NSUserActivityType.BrowsingWeb)
    {
        string url = userActivity.WebPageUrl.ToString(); //全地址
        if (!string.IsNullOrEmpty(url))
        {
            //你的业务处理
        }
    }
    return true;
}

参考文档:https://components.xamarin.com/gettingstarted/googleiosappindexing

注意事项

1.配置的网站必须是https,不能为http;

2.[重要]展现地址和打开的地址不能在一个域名下(做者测试发现放在同一服务器下都不行),好比展现页的地址是https://a.domain.com/?id=10,打开的若是是https://a.domain.com/app/?id=10,系统默认是打开页面,而不是触发通用连接打开app;

3.[重要]配置玩证书以后须要更新证书,才能内部打包和提测上传成功;

4.通用连接可被屏蔽,点击右上角配置的连接以后,通用连接就失效了,解决方案详见:《iOS通用连接(Universal Links)忽然点击无效的解决方案》

 

 

若是以为本文对你有帮助,请点击右下角“推荐”按钮,谢谢!

相关文章
相关标签/搜索