【AGC】iOS的applink的回调没反应问题分析

news/2024/7/20 20:20:48 标签: ios, xcode, iphone

问题背景

在 iOS平台集成AGCAppLinking是遇到了问题和疑惑。提问如下:

使用universallink 或者 url schema的app link都能拉起app,但是判断是否app link返回false,applink的回调没反应?

1 创建了相关的iOS 项目,并创建了应用,设置了相关信息包括bundle id, appid, team id等等

2 创建了app link, universal link的applink 扫码后拉起app 无法回调,

url schema的app link扫码后能拉起app,可以收到回调获取deeplink(但这种,如果我自己用草料生成一个二维码 比如bdwapp://betterwood.com/bdxx)扫码后拉起app 回调没反应。 这两种情况都没找到原因,求解?

紧接着:

schema的 applinking 已经通了,但是universal link的 app linking 不行,调let isAppLinking = AGCAppLinking.instance().openDeepLinkURL(url)一直返回false,

1 Appstore id, 团队id 等都已经配置,agconnect-services.plist也更新到了项目中

2 App linking中的网址允许清单也设置了,然后生成了一个 link,扫二维码能拉起app,就是

AGCAppLinking.instance().openDeepLinkURL(url) 一直返回false,下面回调没有触发

AGCAppLinking.instance().handle { link, error in
      if let l = link {
        let deepLink = l.deepLink
       //todo ...        
      }
    }

解决该问题

首先,关于其他平台的生成的二维码能拉起应用,却没有回掉的原因如下:

在AGC平台生成的AppLinking(或者SDK生成的ShortLink或者LongLink),才可以收到SDK的回调获取deeplink。

草料生成的二维码,不是AGC AppLinking,无法和 AGC AppLinking协作的。它是通过您项目里配置的url schema唤起应用,但不能通过AGC AppLinking获取deeplink。

其次,以Universal Link方式接收,需满足以下配置:

1、生成App Linking域名的资产校验文件。

在https://your_applinking_url_prefix/apple-app-site-association,是否能访问到资产校验文件

2、声明iOS应用关联的域名。

在应用的Xcode项目的Signing&Capabilities标签页中,添加Associated Domain功能,并在Domains中添加要支持的域名,格式为“applinks:your_applinking_url_prefix”

https://developer.huawei.com/consumer/cn/doc/development/AppGallery-connect-Guides/agc-applinking-receivelinks-ios-0000001054025701

3、Universal Link方式,Appdelegate调用的是以下的方法

func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
let isAppLinking = AGCAppLinking.instance().continueUserActivity(userActivity)
return isAppLinking
}

问题根因

AGCAppLinking是基于url schema或Universal Link两种方式来拉起App的,这两种方式都有各自的配置。所以集成时,如果忽略掉了一些细节,对顺利集成AGCAppLinking会造成影响的。

相关参考链接:

https://developer.huawei.com/consumer/cn/doc/development/AppGallery-connect-Guides/agc-applinking-receivelinks-ios-0000001054025701

欲了解更多更全技术文章,欢迎访问https://developer.huawei.com/consumer/cn/forum/?ha_source=zzh


http://www.niftyadmin.cn/n/1865.html

相关文章

【JavaSE】一篇文章领悟Java运算符

前言: 作者简介:爱吃大白菜1132 人生格言:纸上得来终觉浅,绝知此事要躬行 如果文章知识点有错误的地方不吝赐教,和大家一起学习,一起进步! 如果觉得博主文章还不错的话,希望三连支持&#xff01…

【机器人定位引导中的机器视觉技术】

文章目录手眼标定原理手眼标定流程定位引导1、单相机抓取定位引导2、单相机纠偏定位引导3、上下相机对位引导随着工业生产中对自动化的要求越来越高,视觉技术已被广泛引入工业机器人行业,具备视觉的工业机器人能更快、更准、更灵活地完成定位抓取、对位组…

Python_机器学习_常用科学计算库_第3章_Matplotlib

Python_机器学习_常用科学计算库_第3章_Matplotlib 文章目录Python_机器学习_常用科学计算库_第3章_MatplotlibMatplotlib1.1 库的安装学习目标1 安装需要的库1.1通过自己搭建虚拟环境安装机器学习阶段环境1.2 通过anaconda安装机器学习阶段环境2 小结2.2 基础绘图功能 — 以折…

git --- 删除本地分支和远程分支操作

1 删除远程分支 删除远程分支有2中方法,一种是在网页端直接用可视化的操作去删除,另一种是在终端使用命令行去删除,下面分别对两种方式进行讲解。 1.1 在网页端使用可视化的方式删除分支 gitlab与鲁班等工具都提供了网页端可视化,对仓库分支进行操作 在网页端删除分支极…

shell脚本介绍

本文章主要介绍下shell脚本相关的一些语法 1 变量 在shell中,使用变量之前通常并不需要事先为它们做出声明,一般是使用时才创建。默认情况下,所有变量都被看作字符串来存储。通过在变量前加一个$符号来访问它的内容。 lngubuntu:~/myshell…

Linux【进程地址空间】

进程地址空间📖1. 地址空间概念📖2. 写时拷贝📖3. 虚拟地址空间的优点📖1. 地址空间概念 在学习C/C内存管理时,我们可能见过这样一幅图: 但是我们可能不是很理解它,首先有一个问题:…

嵌入式应用-详解移植并使用freetype显示文字

目录 前言 1. freetype和相关概念简介 2.freetype显示文字流程和主要函数 2.1 包含头文件及API头文件:ft2build.h 2.2 初始化: FT_InitFreetype 2.3 加载(打开)字体Face: FT_New_Face 2.4 设置字体大小&#x…

【Linux】7.0 信号

文章目录信号的基本概念kill -l 查看信号列表信号的处理方式signal( ) 自定义处理信号信号的产生方式键盘产生进程异常(core dump)系统调用软件条件信号的发送(OS)信号常见相关名词解释进程接收处理信号原理信号集函数的使用打印p…