【问题标题】:How exactly Facebook AppLinks work on iOS?Facebook AppLinks 如何在 iOS 上运行?
【发布时间】:2014-08-26 08:37:32
【问题描述】:

我发现了一个相关问题:Cannot get the new AppLinks to work on iOS or Android 但我不确定它是否与我面临的问题完全相似。因此,我提出了这个问题。

如果我理解正确的话:https://developers.facebook.com/docs/applinks/ios

当我点击带有正确元数据的正确应用链接时:-

案例 1:我安装了应用程序:

预期操作 1:它将导航到应用内的特定页面。

案例2:我没有安装应用:

预期操作 2:它将引导我到应用的应用商店页面下载。

以下是我目前所做的配置:-

应用链接网址: http://watchoverme.parseapp.com/

应用链接元数据

<html>
<head>
  <title>Watch Over Me</title>
<meta property="al:ios:app_store_id" content="431208868"/>
<meta property="al:ios:app_name" content="Watch Over Me" />
<meta property="al:ios:url" content="watchoverme://promotion" />
<meta property="al:web:url"
      content="https://itunes.apple.com/app/id431208868?mt=8" />
</head>
<body>
Yo!
</body>
</html>

在应用程序端,我添加了自定义 url 方案,如下面的屏幕截图:-

到目前为止,我已经测试了以下几个场景:-

场景 1:我创建了另一个简单的应用,用一个按钮打开应用链接。

按钮的代码:-

- (IBAction)appLinkTapped:(UIButton *)sender {

    NSLog(@"appLinkTapped");

    UIApplication *app = [UIApplication sharedApplication];
    NSString *path = @"watchoverme://promotion";
    NSURL *ourURL = [NSURL URLWithString:path];
    /*
    if(![app
         canOpenURL:ourURL]){
        path = @"http://watchoverme.parseapp.com/";
        ourURL = [NSURL URLWithString:path];
    }*/

    [app openURL:ourURL];
}

结果 1:如果我安装了 WatchOverMe 应用并点击按钮,我可以打开 WatchOverMe 应用。伟大的!。但是,如果未安装 WatchOverMe 应用程序并且我点击按钮,则不会发生任何事情。我应该被引导到 iTunes App Store 下载该应用程序吗?还是我做错了什么?

场景 2: 我在 Facebook 上发布了链接 (http://watchoverme.parseapp.com/),并尝试在我的手机上点击该链接。

结果 2: 无论我是否安装了该应用程序,它都只显示空白网站。

问题:我是否在配置上遗漏了某些内容,直到它无法触发上述预期的 applink 行为?

谢谢

更新 #1

感谢李明给我指明了正确的方向。我想更好地了解应用链接的工作原理。所以,我做了更多的测试,这就是我发现的:-

从上面的屏幕截图:

案例 A:我使用 Watch Over Me 应用分享应用链接(您将看到“通过 Watch Over Me”)

结果 A: 当我点击 Facebook 应用上的链接时。如果我安装了 Watch Over Me 应用程序,它会将我重定向到该应用程序。如果我没有安装该应用程序,它会将我重定向到 iTunes 应用程序商店进行下载。效果很好!

案例 B:我只使用状态更新分享应用链接。 (没有通过 Watch Over Me)

结果B:只会打开空白网页。

那么,只有当我们通过 Facebook 发布应用链接时,应用链接才有效?并且不通过我们的状态更新发布 Applink?

更新 #2

我在 2014 年 9 月 1 日再次测试。以上两种情况都运行良好!非常感谢李明。

【问题讨论】:

  • 请不要只对问题投反对票。如果您认为我在这个问题上有什么可以改进的地方,请在此处的评论中分享,以便我从错误中吸取教训。这样会很有帮助。谢谢。
  • 所以 Facebook AppLinks 可以将您重定向到 App Store,但是一旦安装了您的应用程序,如果您的自定义 URL 方案有一些参数会发生什么?当您打开应用而不再次点击 AppLinks 链接时,它们是否可用?
  • 它似乎不起作用。我在手机上安装了您的应用程序,将您的链接复制并粘贴到我的 Messenger 上,watchoverme.parseapp.com,点击您的链接,它会打开空白页面,而不是应用程序。当我单击“更多操作”按钮时,它给了我一个“安装监视我”选项,但我已经安装了该应用程序..帮助!顺便问一下,您如何指定您的应用是“仅限移动设备”的?

标签: ios objective-c iphone facebook applinks


【解决方案1】:

对于不在 Facebook 工作并理解“表明您的应用仅适用于移动设备”的意思的其他所有人,这是我从测试中发现的:

他们似乎正在使用“al:web:should_fallback”元属性来检查您的应用是否“仅限移动设备”并且没有网络存在。根据App Links spec defines it 的方式,据我所知,这没有任何意义,但我知道什么。

无论如何,如果您希望您的 Facebook 帖子直接进入您的应用程序中的深层链接,而不是通过 Facebook 随机应用程序链接 UX 处理打开不和谐的 web 视图,那么将以下元属性添加到您的 html 页面:

<meta property="al:web:should_fallback" content="false" />

当然,这现在可以防止您将未安装应用的用户发送到应用商店以外的任何地方。然而,由于 webview 通常只是 Facebook 帖子的重复,这可能是一个值得权衡的选择。

【讨论】:

    【解决方案2】:

    由于您没有表明您的应用仅适用于移动设备,因此它将遵循原始决策框中的“否”箭头,并显示您的网页以及一些打开或安装操作的号召性用语。

    Facebook 一直在测试不同的用户体验处理方法,因此您看到的可能与其他人看到的不同。我尝试使用您的网址发布状态更新,一切正常。

    【讨论】:

    • 感谢您为我指明正确的方向。我想更好地理解。我已经用副标题更新了这个问题:“更新#1”。希望你能澄清我上面的疑问。谢谢。
    • 你有什么版本的 Facebook 应用程序?您可以发布显示空白页面的 webview 图像吗?如果你点击右下角的分享按钮会发生什么?
    • 我使用的 Facebook 应用程序版本是 5.0。令人惊讶的是,我刚刚测试过,上述两种方法都可以访问应用程序(安装时)和应用程序商店(未安装时)。我认为这个问题已经解决了。非常感谢!
    • 您好,“您没有表明您的应用程序仅适用于移动设备”是什么意思?这是在哪里表示的?我也面临着这个问题。我通过对话分享成功发布到 FB。我用我的 URL 发布带有元标记的页面。该页面从 Facebook 打开,但如果未安装,我不会自动进入我的应用程序或应用程序商店。我在其他问题/答案中看到了点点滴滴,但没有什么能帮助我解决我遇到的问题。我应该期望应用程序自动打开吗?
    • @MingLi 同样的问题也在这里..在我的情况下,我使用 fb 共享对话共享 Web 内容。因此,当我点击共享故事时,它会在 web 视图中打开,有时在该页面顶部会出现应用链接符号..同时点击同样会将我带到应用程序..这是正确的吗??
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-11
    • 2014-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-18
    相关资源
    最近更新 更多