ios和android应用都可以注册自定义url scheme吗

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ios和android应用都可以注册自定义url scheme吗相关的知识,希望对你有一定的参考价值。

参考技术A 1/cn/app/hao-di/id883918798?mt=8'; , 300);注释:okdi为应用设置的url schema用户通过应用的URL Schema调用本地应用,在xcode里设置好url schema,并运行应用在ios设备上,切换到浏览器界面,输入url schemm:// ,调用本地应用,此步可作为上面操作的测试步骤。

Branch.io 自定义网址缩短器和通用链接

【中文标题】Branch.io 自定义网址缩短器和通用链接【英文标题】:Branch.io custom url shortener & universal links 【发布时间】:2016-02-24 16:39:59 【问题描述】:

假设: 我有一个自定义 URL 缩短器,它重定向到一个 branch.io 长 URL。 该自定义 URL 域已在我的应用程序的通用链接权利文件中注册。 当用户点击短链接时,应用程序打开并调用 application:continueUserActivity:restorationHandler:... 在该方法中,我得到了短链接后面的重定向 URL(分支),基于新链接创建一个新的 NSUserActivity 并从 Branch SDK 调用“continueUserActivity”方法(以新活动作为参数)。

问题是来自 Branch SDK 的回调没有返回任何连接到该链接的内容。它返回就好像没有传递任何 URL。

如果我对来自重定向的链接进行硬编码并立即调用 Branch SDK,而不等待重定向响应,那么一切正常。我想这与 Branch SDK 中的时间相关。

问题是:在使用上述重定向方案时,如何让 Branch 识别链接并返回我需要的参数? (我想使用我自己的 URL 缩短器,而不是 Branch 的那个)

【问题讨论】:

Alex with Branch here:这绝对是我们链接系统的一个不寻常的应用!我们提供了内置的 URL 缩短器,以帮助避免像您描述的那样更复杂的过程中固有的陷阱,因此很难确定事情可能在哪里中断。您能帮我理解使用自定义缩短器背后的基本原理吗? 你是如何得到短网址后面的链接的?就我而言,我想要缩短网址后面的网址。 @stonycis @Sumeet.Jain 我使用 AFHTTPSessionManager (AFNetworking) 中的“setTaskWillPerformHTTPRedirectionBlock”方法来获取短 URL 后面的重定向。 【参考方案1】:

在确定是否需要处理 Branch 链接时,Branch 会检查以验证 NSUserActivity 是否属于 NSUserActivityTypeBrowsingWeb 类型。如果是,Branch 检查 .webpageURL 以确定它是否是 Branch 链接。如果不是,Branch 就认为没有点击任何 Branch 链接。

要在应用以其他方式打开后手动将分支链接传递到 SDK,有两个函数可用:.continue 和 .handleDeepLink。

.继续

    let activity = NSUserActivity(activityType: "NSUserActivityTypeBrowsingWeb")
    activity.webpageURL = URL(string: "https://testbed-swift.app.link/77Q527xswy")
    Branch.getInstance().continue(activity);

.handleDeepLink

    Branch.getInstance().handleDeepLink(URL(string: "https://testbed-swift.app.link/77Q527xswy"))

如果您调用其中一种方法,Branch SDK 将处理传入的 Branch 链接。如果这些方法不适合您,我会检查以验证您是否确实在代码中传入了有效的 Branch 链接,并且不是您用来打开应用的短链接。

【讨论】:

以上是关于ios和android应用都可以注册自定义url scheme吗的主要内容,如果未能解决你的问题,请参考以下文章

Android自定义URL,用于在iOS中打开App

在 iOS 中注册自定义文件类型

Branch.io 自定义网址缩短器和通用链接

ios 自定义URL Scheme启动App

协助 PayPal 自适应支付 - IOS 和 Android 开发

IOS 在一个应用里打开另一个应用 及其 两个应用互相调用