如何实现在AGC控制台创建App Linking并在iOS端打开

简介

App Linking是一种支持Android、iOS、HarmonyOS、Web等多种平台的跳转链接,链接的目标内容可以是您想要推广的产品优惠活动,也可以是用户之间可以互相分享的应用原生内容。您可以在创建App Linking后将链接地址直接发送给用户,或者由用户在应用中动态生成App Linking并分享给其他用户,接收到App Linking的用户点击链接后即可跳转到指定页面。

开通服务和集成SDK

1、在AppGallery Connect,点击“我的项目”,在项目的应用列表中选择需要开通App Linking的应用。

2、在导航选择“增长 > App Linking”。如果是首次使用App Linking服务,请点击“立即使用”开通服务。

cke_198253.png

3、填写您所使用证书对应的App Store ID和团队ID,完成后点击后面的“☑”。

cke_211967.png

4、选择常规页签下的“应用”区域,下载agconnect-services.plist配置文件。

cke_221713.png

5、打开命令行窗口,导航至Xcode项目所在的位置,创建Podfile文件。如果已经存在,可跳过本步骤。

cd project-directory

pod init

6、编辑Podfile文件,增加pod依赖pod 'AGConnectAppLinking'。

target 'AGC-AppLinking-1' do 
   pod 'AGConnectAppLinking' 
end

7、执行 pod install,然后打开xcworkspace文件查看该项目。

安装成功效果如下图。

cke_252461.png

界面设计

您可以在您的iOS工程中创建一个布局页面,参照下图进行UI设计,能够接收App Linking并且展示接收结果即可。

cke_264750.png

申请链接前缀

1、在导航选择"增长 > App Linking",选择"链接前缀"页签,点击"添加链接前缀"。

cke_274043.png

2、在“设置域名”中输入您所使用的网址前缀。

cke_283393.png

3、完成输入后点击“下一步”,系统将自动验证该链接前缀是否可用。

cke_293868.png

在AGC控制台创建App Linking

1、在创建App Linking之前,需将您要用到的深度链接,添加进网址允许清单。在App Linking页面,选择“网址允许清单”页签,点击“添加允许清单规则”。

cke_303837.png

2、您可以依次加入您所用到的重定向链接规则,完成后如下图所示。

cke_313339.png

3、App Linking页面下,选择“App Linking”页签,点击“创建App Linking”。

cke_326034.png

4、在“设置短链接”步骤,直接使用系统推荐的参数即可,点击“下一步”。

cke_335633.png

5、在“设置深度链接”步骤,设置深度链接相关参数,其中:

−链接名称:按需配置即可,一般配置为该链接的使用场景,此处配置为:AppLinking-easy

−深度链接地址(默认):一般配置为PC打开场景下可访问的H5地址。此处配置为:https://developer.huawei.com/consumer/cn。

−iOS深度链接地址:iOS设备点击该链接,重定向获取到的地址。此处配置为:AppLinking://iOS/testid=123。其他参数暂时不填,直接点击“下一步”。

cke_348520.png

6、在“设置链接行为”步骤中,“设置iOS链接行为”选择“在iOS应用中打开”和您的软件包 ID。“未安装应用时,则重定向到”选择“App Store详情页”。

cke_359283.png

7、其他可选参数您不填,点击右上角的“发布”,发布该App Linking链接。

在应用中接收App Linking

1、通过自定义Scheme的方式打开App Linking,需要您在Xcode上打开“TAGRGETS > Info > URL Types”,添加URL Schemes配置。您中,URL Shchemes设置为AppLinking。

cke_370129.png

2、在应用的AppDelegate类中引入AGConnectCore和AGConnectAppLinking库,并在didFinishLaunchingWithOptions方法里调用AGCInstance.startUp进行初始化。

import AGConnectCore 
import AGConnectAppLinking 

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { 
   AGCInstance.startUp() 
}

3、调用AGCAppLinking.instance().handle方法,在回调中处理接收到的App Linking链接事件。

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { 
   let vc = ViewController() 
   let nav = UINavigationController(rootViewController: vc) 
   self.window?.rootViewController = nav 
 
   AGCInstance.startUp() 
   AGCAppLinking.instance().handle { (link, error) in 
      let deepLink = link?.deepLink 
      vc.getDeepLink(deeplink: deepLink) 
   } 
   self.window?.makeKeyAndVisible() 
   return true 
}

4、实现application: openURL: options:方法,并返回AGCAppLinking.instance().openDeepLinkURL(url)的值。

AGCAppLinking.instance().openDeepLinkURL(url)的值。
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool { 
   let isAppLinking = AGCAppLinking.instance().openDeepLinkURL(url) 
   return isAppLinking 
}

打包测试

1、在Xcode上点击运行按钮,在手机或模拟器上运行,以安装应用。

cke_408813.png

2、在AppGallery Connect平台上,通过复制或扫码的方式,获得App Linking的链接URL。

cke_419422.png

3、在浏览器访问该链接,弹出是否打开应用的提示,点击“Open”。

cke_426741.png

4、从浏览器跳转到您的应用后,应用获取到深度链接地址,即您在AGC云侧设置的iOS深度链接地址。

cke_437968.png

参考文档

App Linking官方文档

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

posted @ 2022-07-13 09:21  华为开发者论坛  阅读(164)  评论(0编辑  收藏  举报