如何将通用链接重定向到应用商店而不在 Safari 浏览器上显示弹出窗口?

Posted

技术标签:

【中文标题】如何将通用链接重定向到应用商店而不在 Safari 浏览器上显示弹出窗口?【英文标题】:How to redirect Universal link to app store without showing pop up on Safari browser? 【发布时间】:2019-08-01 06:25:12 【问题描述】:

我在 ios 应用程序中使用通用链接。对于我使用 Firebase 动态链接的通用链接。

安装应用后,通用链接工作正常。但是,当应用程序未安装时,此链接将在 safari 中打开。

我正在 Swift 中以编程方式创建动态链接(通用链接)。

func createDynamicLinkForConsumer()


        guard let link = URL(string: "https://<Domain-Name>?consumerID=\(Auth.auth().currentUser?.uid ?? "")&type=consumerReferral") else  return 

        let dynamicLinksDomainURIPrefix = "<appName>.page.link"

        let linkBuilder = DynamicLinkComponents(link: link, domain: dynamicLinksDomainURIPrefix)
        linkBuilder.options?.pathLength = .short
        linkBuilder.iOSParameters = DynamicLinkIOSParameters(bundleID: "<Bundle-ID>")
        linkBuilder.iOSParameters?.appStoreID = "<app-store-id>"
        linkBuilder.androidParameters = DynamicLinkAndroidParameters(packageName: "<android package name>")
        linkBuilder.navigationInfoParameters?.isForcedRedirectEnabled = true


        guard let longDynamicLink = linkBuilder.url else  return 

        print("The long URL is: \(longDynamicLink)")

        self.referralLinkLabel.text = String(describing: longDynamicLink)

        DynamicLinkComponents.shortenURL(longDynamicLink, options: nil)  (url, warnings, error) in

            if url != nil 

                print("Short URL is: \(url)")

                self.referralLinkLabel.text = String(describing: url!)

            

        

    

这是 safari 打开链接后打开的屏幕:

点击警告框浏览器的“打开”按钮后打开应用商店应用。

其实我想做的就是重定向到应用商店,这样用户就可以直接下载应用了。我不想通过这两个步骤打开应用商店。

【问题讨论】:

你找到解决办法了吗? 我也面临同样的问题。所以,如果你已经完成了,请帮助我。 【参考方案1】:

您应该首先初始化 DynamicLinkNavigationInfoParameters,然后将属性设置为 true。

linkBuilder.navigationInfoParameters = DynamicLinkNavigationInfoParameters()
linkBuilder.navigationInfoParameters?.isForcedRedirectEnabled = true

【讨论】:

【参考方案2】:

您好,您可以通过检查动态链接来减少这些步骤

但您应该记住,您在 Messanger 应用和其他一些应用中的链接可能存在问题。

【讨论】:

我正在以编程方式创建该动态链接,并添加了参数“isForcedRedirectEnabled = true”。但它不起作用。请再次检查问题,我已编辑。 您可以查看文档,这正是您所需要的。也许您可以使用最新版本更新库,但我认为最好保留此页面。

以上是关于如何将通用链接重定向到应用商店而不在 Safari 浏览器上显示弹出窗口?的主要内容,如果未能解决你的问题,请参考以下文章

一键——3个应用商店——如何将用户重定向到合适的应用商店?

带有重定向的通用链接在 iOS 中不起作用

如何不以编程方式处理一些通用链接?

Facebook 请求重定向到 Play 商店(而不是实际应用,当它已经安装时)

如何检测该应用程序正在从 Safari 重定向打开?

如何在 iOS 应用程序中集成 Facebook/Google+ 而无需重定向 Safari 浏览器