问题背景

在 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

版权声明:本文为华为开发者论坛原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/developer-huawei/p/16838839.html