Facebook AppLinks在iOS上的运作情况如何?

Ric*_*cky 8 iphone facebook objective-c ios applinks

我发现了一个相关的问题:无法让新的AppLink在iOS或Android上运行但是我不确定它是否与我面临的问题完全相似.因此,我创造了这个问题.

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

Facebook AppLinks在iOS上的运作情况如何?

当我点击正确的applink与适当的元数据: -

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

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

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

预期的行动2:它将指引我下载应用程序的应用商店页面.

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

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

App Link元数据:

<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>
Run Code Online (Sandbox Code Playgroud)

在应用程序方面,我添加了自定义网址方案,如下面的屏幕截图: - watchoverme app链接网址方案

到目前为止,我已经测试了以下几种情况: -

场景1:我用一个Button创建了另一个简单的应用程序来打开applink.

按钮的代码: -

- (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];
}
Run Code Online (Sandbox Code Playgroud)

结果1:如果我安装了WatchOverMe应用程序并点击按钮,我可以打开WatchOverMe应用程序.大!.但如果没有安装WatchOverMe应用程序,我点击按钮,没有任何反应.我是否应该被引导到iTunes App商店下载应用程序?或者我做错了什么?

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

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

问题:我在配置上遗漏了什么,直到它无法触发上面的预期applink行为?

谢谢

更新#1

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

Facebook App Link

从上面的屏幕截图:

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

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

案例B:我只使用状态更新来共享应用程序链接.(没有通过监视我)

结果B:只打开空白网页.

那么,Applink仅在我们通过Facebook发布applink时才有效?而不是通过我们的状态更新发布Applink?

更新#2

我已于2014年9月1日再次测试过.上述两种情况都运行良好!非常感谢李明.

jef*_*fjv 7

对于那些不在Facebook工作并且通过"表明你的应用程序只是移动"而理解他们的意思的其他人来说,这是我从测试中发现的:

看来他们正在使用"al:web:should_fallback"元属性来检查您的应用是否"仅限移动"并且没有网络存在.根据App Links规范如何定义它,但据我所知,这是没有意义的.

无论如何,如果你想让你的Facebook帖子直接进入应用程序中的深层链接,而不是通过Facebook随机应用程序链接UX处理打开讨厌的webview,那么将以下元属性添加到你的html页面:

<meta property="al:web:should_fallback" content="false" />
Run Code Online (Sandbox Code Playgroud)

当然,这会阻止您将没有安装应用程序的用户发送到除应用程序商店之外的任何其他用户.然而,由于webview通常只是Facebook帖子的重复,这可能是值得的权衡.

  • 我希望我可以百万次这样做. (2认同)

Min*_* Li 2

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

Facebook 总是在测试不同的用户体验处理方式,所以你看到的可能不是其他人看到的。我尝试使用您的网址发布状态更新,一切都按预期进行。