iOS 微信打开第三方应用(微信跳转第三方app)(Universal Links)

iOS应用可以使用 URL Schemes 进行应用间的跳转或实现网页打开应用的功能,这种跳转是协议跳转。

要应用间能跳转就要遵循URL Schemes协议。

要网页跳转应用网页就要遵循URL Schemes协议。

所以这就出现了微信或QQ等知名应用不能打开第三方应用的问题,不能打开是因为微信和QQ使用的是自己研发的QQ浏览器,他不遵循URL Schemes这个协议。

实例演示:(下载 卡惠应用 查看效果):注: kahui.huankaun.com 就是你服务器的域名

1,问题具备的场景

(1)第三方应用集成了友盟分享到QQ和微信的功能

(2)第三方应用分享了一个web页面到微信或QQ

(3)打开分享的web页面,点击上面的某一个按钮

(4)如果用户安装了该应用,直接打开应用根据web地址中的参数跳转到对应的页面

(5)如果用户没有安装应用,直接跳转到appStore

2,实用的技术:iOS9 之后提供的 Universal Links 功能

3,实现步骤

(1)创建一个json文件,名称必须为 apple-app-site-association,⚠️该文件不可带 .json 的后缀名

         apple-app-site-association 文件必须放在https服务器的根目录下,例:https://kahui.huankaun.com 这个路径下 ⚠️一定是根目录,也就是说该文件必须是一级目录,供下载使用

         apple-app-site-association 文件格式:如代码 1

         teamID:打开苹果官网,点击Account,点击左边栏的 Membership,查找teamID 如图 1

         paths:定义的web页面的地址,*表示 kahui.huankaun.com 这个路径下的任何子路径,也可以指定固定跳转的页面例:/index.php

(2)确保使用 https://kahui.huankaun.com/apple-app-site-association 这个链接可以在 苹果的验证网站 访问得到,正确的访问结果为 如图2


(3)进入开发者网站,找到你自己的bundleId,可以点击edit按钮,开启associate domains,并创建相应的provisioning Profiles,如图 3


(4)在项目的Capablities中开启Associated domains,添加 applinks:kahui.huankaun.com如图 4

(5)在appdelegate中实现上面这个方法,当使用Universal Links唤醒app时就执行这个方法如代码 2


(6)快捷验证,在备忘录中输入https://kahui.huankaun.com/...常按这个链接,出现使用第三方应用打开表示已经成功,如图 5


(7)当没有安装该应用时的处理方式是:上传该html文件到 kahui.huankaun.com 路径下,如代码 3

       













代码1
{
  "applinks": {
        "apps": [],
        "details": [
            {
                "appID": "teamID.bundleId",
                "paths": ["*"]
            }
        ]
    }
}



代码2
- (BOOL)application:(nonnull UIApplication *)application continueUserActivity:(nonnull NSUserActivity *)userActivity restorationHandler:(nonnull void (^)(NSArray * __nullable))restorationHandler{}

代码3
<!DOCTYPE html>
<html lang="en" >
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
    <meta http-equiv="Pragma" content="no-cache" />
    <meta http-equiv="Expires" content="0" />
    <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width">
    <title>上新-跳转中...</title>

</head>
<body>
<script type="text/javascript">
        setTimeout(function(){
            window.location = "第三方在应用宝的下载链接"
        },3000)

</script>

</body>
</html>


  

### 配置微信开发者Universal Link于iOS平台 #### 准备工作 为了使应用程序能够通过微信分享链接并成功启动,需确保已集成最新版的微信SDK。自1.8.6版本起,官方推荐采用Universal Link方式进行页面跳转验证[^1]。 #### 设置Associated Domains 在Xcode项目设置中启用“Associated Domains”,并向其添加`applinks:`前缀加上自己的域名,例如对于`https://example.com`应填写为`applinks:example.com`[^4]。 #### 创建Apple App Site Association (AASA) 文件 该JSON文件用于声明哪些URL路径可以被特定的应用程序处理。放置于服务器根目录下名为`.well-known/apple-app-site-association`的位置,并确保可通过HTTPS访问。内容结构如下所示: ```json { "applinks": { "apps": [], "details": [ { "appID": "{Team ID}.{Bundle Identifier}", "paths": ["/path/to/resource/*"] } ] } } ``` 其中`{Team ID}`代表苹果开发者账号团队标识符;而`{Bundle Identifier}`则是应用包名。针对具体需求调整`/path/to/resource/*`部分来限定可触发APP打开的具体网页地址范围。 #### Xcode中的配置 还需在项目的Entitlements文件里加入相应的关联域权限声明,即`com.apple.developer.associated-domains`键值对,同样指向之前提到过的`applinks:yourdomain.com`形式字符串列表。 完成上述步骤后,在实际测试过程中如果遇到任何问题,建议参考官方提供的常见问题排查指南以获取帮助[^3]。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值