Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/106.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS中的通用链接(Facebook、Twitter、LinkedIn)_Ios_Iphone_Facebook_Deep Linking_Ios Universal Links - Fatal编程技术网

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

iOS中的通用链接(Facebook、Twitter、LinkedIn),ios,iphone,facebook,deep-linking,ios-universal-links,Ios,Iphone,Facebook,Deep Linking,Ios Universal Links,我在iOS中使用universal link。它在Safari浏览器和消息中运行良好 安装服务器 我正在让一台服务器在线运行。为了安全地将我的iOS应用程序与服务器关联,Apple要求您提供一个名为Apple app site association的配置文件。这是一个JSON文件,描述域和支持的路由 需要通过HTTPS://{domain}/apple-app-site-association通过HTTPS访问苹果应用程序站点关联文件,无需任何重定向 该文件如下所示: { "appli

我在iOS中使用universal link。它在Safari浏览器和消息中运行良好

安装服务器

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

需要通过HTTPS://{domain}/apple-app-site-association通过HTTPS访问苹果应用程序站点关联文件,无需任何重定向

该文件如下所示:

{
    "applinks": {
        "apps": [],
        "details": [
        {
            "appID": "**********.com.domain.appname”,
                "paths": ["*"]
        }
        ]
    }
}
注意-我没有将.json附加到apple应用程序站点关联文件名

并成功地安装了iOS应用程序

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

现在我的问题是:

步骤1:我共享了我的应用程序到Facebook的链接

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


第三步:如果我在Facebook应用程序中也这么做。它在Facebook网络视图中打开。但是我需要它来打开我的应用程序。

这是一个非常常见的问题:Facebook应用程序不支持应用程序外的通用链接。正如您所看到的,每次都会出现在webview中。这是许多应用程序的一个问题,这些应用程序强制web内容在专属网络视图中打开。有些应用程序(如Slack)确实提供了在Safari中打开web内容的设置,而不是在捕获的webview中。Facebook应用程序不提供此选项

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

分支机构通过向其合作伙伴提供“深度视图”(请参阅:)来满足对该附加网页的需求。当然,你可以自己创建类似的东西。

它通过

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
}

我已经在这个问题下写了一个详细的解决方案文档:还要注意,为了让它正常工作,您需要两个不同的域。请参见并确认“要使其正常工作,有一系列的注意事项。例如,通用链接不能与用户当前查看的域相同。”