从 Facebook 网络视图中打开 iOS 个深层链接停止工作

Opening iOS deep links from within the Facebook web view stopped working

我的应用程序的 link 突然在 Facebook 网络视图中停止工作,但当我在 Safari 中打开深度 link 时它们工作正常(或单击网络中的共享查看并选择 Safari)。

我为我的资源和应用 link 添加了所有必要的开放图标记,如下所述:https://developers.facebook.com/docs/applinks/add-to-content

有没有人在新的 Facebook 应用程序更新后遇到过同样的行为?版本:(34.0.0.36.265)

如果我想离开 Facebook,我会收到通常的提示,但点击它后没有任何反应,设备停留在 Facebook 网络视图中。我检查了 https://developers.facebook.com/tools/debug/og/object/ 上的爬虫信息,但没有报告任何错误。

这是共享的 URL/resource 并路由到深层 link(服务器可能需要唤醒):https://www.qonnect-it.com/mexx

有什么想法吗?

我在最新的 Facebook 应用程序更新中遇到了完全相同的问题,似乎是他们的问题而不是您的应用程序(甚至是我的)。

我建议去 https://www.facebook.com/help/186570224871049 报告问题,以便我们可以快速升级此问题。

很高兴..我们发现这个缺陷已记录。这带走了我几天的生产性工作。现在,我们注意到一些奇怪的事情是,虽然即使在选择 "Open App" 之后也没有任何反应,但尝试稍微滑动持有 header 的 Web 视图,令您惊讶的是,deep-link 然后作品。有趣又有趣。如果其他人也遇到过,请告诉我。

如果您正在寻找可能的解决方法,直到此问题得到解决,请使用 facebook 的移动主机 API。似乎点击用它创建的链接不会传递给当前有问题的 iOS facebook in-app-browser,因此可以工作。

这是一个简短的 step-by-step 指南(改编自 the documentation):

  1. Create a new app on facebook(或使用现有的)。
  2. 请求应用的访问令牌:curl "https://graph.facebook.com/oauth/access_token?client_id=YOUR_APP_ID&client_secret=YOUR_APP_SECRET&grant_type=client_credentials"
  3. 通过填写您通常在页面元标记中定义的数据来创建 app-link header:

    curl https://graph.facebook.com/app/app_link_hosts \
    -F access_token="TOKEN_FROM_STEP_2" \
    -F name="YOUR_APP_NAME" \
    -F ios=' [
      {
        "url" : "your://deep/link",
        "app_store_id" : YOUR_APP_STORE_APP_ID,
        "app_name" : "YOUR_APP_NAME",
      },
    ]' \
    -F android=' [
      {
        "url" : "your://deep/link",
        "package" : "your.package.name",
        "app_name" : "YOUR_APP_NAME"
      },
    ]' \
    -F web=' {
      "should_fallback" : false,
    }'
    
  4. 使用返回的 ID {"id":"somethingsomething"} 请求您的规范 URLs:

    curl -G https://graph.facebook.com/ID_FROM_STEP_3 \
    -d access_token="TOKEN_FROM_STEP_2" \
    -d fields=canonical_url \
    -d pretty=true
    
  5. 直接使用返回的规范 URL https://fb.me/ID 进行深度链接,而不是链接到您常用的页面。