iOS中的通用链接(Facebook,Twitter,LinkedIn)

问题描述 投票:1回答:2

我在iOS中使用通用链接。它在Safari浏览器和消息中运行良好。

设置服务器

我有一台在线运行的服务器。为了安全地将我的iOS应用程序与服务器关联,Apple要求您提供名为apple-app-site-association的配置文件。这是一个JSON文件,描述了域和支持的路由。

apple-app-site-association文件需要通过HTTPS访问,无需任何重定向,https:// {domain} / apple-app-site-association。

该文件如下所示:

{
    "applinks": {
        "apps": [],
        "details": [
        {
            "appID": "**********.com.domain.appname”,
                "paths": ["*"]
        }
        ]
    }
}

注意 - 我没有将.json附加到apple-app-site-association文件名。

并成功设置了iOS应用程序。

我的要求是,我分享了从我的应用程序到Facebook的链接。当用户点击Facebook上的链接时,应该在应用程序在手机上可用时打开应用程序,或者应该从浏览器打开应用程序。

现在我的问题是:

第1步:我分享了从我的应用程序到Facebook的链接。

第2步:我从Safari登录Facebook。当我点击链接时,它会成功打开我的应用程序。

第3步:如果我在Facebook应用程序中执行相同操作。它正在Facebook网页视图中打开。但我需要它来打开我的应用程序。

ios iphone facebook deep-linking ios-universal-links
2个回答
8
投票

这是一个非常常见的问题:Facebook应用程序不支持应用程序中的Universal Linking。正如您所看到的,您每次都会在webview中结束。这是许多应用程序的问题,这些应用程序强制在强制网络浏览中打开Web内容。某些应用程序(例如Slack)确实提供了在Safari中打开Web内容而不是强制webview的设置。 Facebook应用程序不提供此选项。

我在这种情况下看到的最佳用户体验是在webview中显示您自己的网页。显示的网页上有一个通用链接,通过点击此链接,用户可以打开您的应用。

Branch通过向其合作伙伴提供“Deepviews”(请参阅​​:https://dev.branch.io/features/deepviews/overview/)来处理此额外网页的要求。你当然可以自己创造类似的东西。


0
投票

它通过处理

func application(_ application: UIApplication, open url: URL, sourceApplication:   String?, annotation: Any) -> Bool {
    print(url)
}

/// parser function
func parseFBAppLinks(from url: URL) -> String? {
   guard let components = URLComponents(url: url, resolvingAgainstBaseURL: true)  else { return .none }
   guard let urlString = components.queryItems?.first?.value else { return .none }

   return urlString
}
© www.soinside.com 2019 - 2024. All rights reserved.