8

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

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

Facebook 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 方案,如下面的屏幕截图:- watchoverme 应用链接 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

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

Facebook 应用程序链接

从上面的屏幕截图:

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

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

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

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

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

更新#2

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

4

2 回答 2

7

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

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

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

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

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

于 2015-05-12T10:18:21.263 回答
2

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

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

于 2014-08-28T00:22:22.117 回答