热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

​简介AppLinking是一种支持Android、iOS、HarmonyOS、Web等多种平台的跳转链接,链接的目标内容可以是您想要推广的产品优惠活动,也可以是用户之间可以互相分

简介

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



推荐阅读
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 本文讨论了一个数列求和问题,该数列按照一定规律生成。通过观察数列的规律,我们可以得出求解该问题的算法。具体算法为计算前n项i*f[i]的和,其中f[i]表示数列中有i个数字。根据参考的思路,我们可以将算法的时间复杂度控制在O(n),即计算到5e5即可满足1e9的要求。 ... [详细]
  • 本文介绍了腾讯最近开源的BERT推理模型TurboTransformers,该模型在推理速度上比PyTorch快1~4倍。TurboTransformers采用了分层设计的思想,通过简化问题和加速开发,实现了快速推理能力。同时,文章还探讨了PyTorch在中间层延迟和深度神经网络中存在的问题,并提出了合并计算的解决方案。 ... [详细]
  • 如何查询zone下的表的信息
    本文介绍了如何通过TcaplusDB知识库查询zone下的表的信息。包括请求地址、GET请求参数说明、返回参数说明等内容。通过curl方法发起请求,并提供了请求示例。 ... [详细]
  • 本文介绍了在Mac上安装Xamarin并使用Windows上的VS开发iOS app的方法,包括所需的安装环境和软件,以及使用Xamarin.iOS进行开发的步骤。通过这种方法,即使没有Mac或者安装苹果系统,程序员们也能轻松开发iOS app。 ... [详细]
  • 本文介绍了互联网思维中的三个段子,涵盖了餐饮行业、淘品牌和创业企业的案例。通过这些案例,探讨了互联网思维的九大分类和十九条法则。其中包括雕爷牛腩餐厅的成功经验,三只松鼠淘品牌的包装策略以及一家创业企业的销售额增长情况。这些案例展示了互联网思维在不同领域的应用和成功之道。 ... [详细]
  • 本文整理了Java中com.evernote.android.job.JobRequest.getTransientExtras()方法的一些代码示例,展示了 ... [详细]
  • 3.223.28周学习总结中的贪心作业收获及困惑
    本文是对3.223.28周学习总结中的贪心作业进行总结,作者在解题过程中参考了他人的代码,但前提是要先理解题目并有解题思路。作者分享了自己在贪心作业中的收获,同时提到了一道让他困惑的题目,即input details部分引发的疑惑。 ... [详细]
  • 本文详细介绍了如何使用MySQL来显示SQL语句的执行时间,并通过MySQL Query Profiler获取CPU和内存使用量以及系统锁和表锁的时间。同时介绍了效能分析的三种方法:瓶颈分析、工作负载分析和基于比率的分析。 ... [详细]
  • 本文介绍了win7系统休眠功能无法启动和关闭的解决方法,包括在控制面板中启用休眠功能、设置系统休眠的时间、通过命令行定时休眠、手动进入休眠状态等方法。 ... [详细]
  • 华为鸿蒙系统官网2.0报名方法及适用设备
    本文介绍了华为鸿蒙系统官网2.0报名的适用设备、报名方法以及三种方式,包括在应用商店下载开发者联盟app、在官网中进行报名、在微信公众号中申请体验HarmonyOS 2.0 手机开发者Beta版本。同时提醒错过测试机会的用户可以等待后续的正式版发布。 ... [详细]
  • 解决Sharepoint 2013运行状况分析出现的“一个或多个服务器未响应”问题的方法
    本文介绍了解决Sharepoint 2013运行状况分析中出现的“一个或多个服务器未响应”问题的方法。对于有高要求的客户来说,系统检测问题的存在是不可接受的。文章详细描述了解决该问题的步骤,包括删除服务器、处理分布式缓存留下的记录以及使用代码等方法。同时还提供了相关关键词和错误提示信息,以帮助读者更好地理解和解决该问题。 ... [详细]
  • 本文概述了JNI的原理以及常用方法。JNI提供了一种Java字节码调用C/C++的解决方案,但引用类型不能直接在Native层使用,需要进行类型转化。多维数组(包括二维数组)都是引用类型,需要使用jobjectArray类型来存取其值。此外,由于Java支持函数重载,根据函数名无法找到对应的JNI函数,因此介绍了JNI函数签名信息的解决方案。 ... [详细]
  • python中安装并使用redis相关的知识
    本文介绍了在python中安装并使用redis的相关知识,包括redis的数据缓存系统和支持的数据类型,以及在pycharm中安装redis模块和常用的字符串操作。 ... [详细]
author-avatar
不敢想的爱情肿
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有