【问题标题】:Android Facebook Deeplink redirecting to Google Play StoreAndroid Facebook Deeplink 重定向到 Google Play 商店
【发布时间】:2014-12-09 12:31:12
【问题描述】:

我已经在我的 Android 应用中实现了深层链接。 我想通过 Facebook Messenger 将链接发送给我的朋友,当他们点击它时,如果安装了该应用程序,它将打开,否则应该打开 Google Play 商店以安装该应用程序。

我在清单中有以下意图过滤器:

<intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <data android:scheme="christmascards" />
 </intent-filter>

这是我在发送到 facebook 以获取我的规范网址的参数中输入的内容:

    Bundle params = new Bundle();
    params.putString("access_token", accessToken);
    params.putString("name", "Christmas Cards Link");
    params.putString("android", "[{\"app_name\": \""+getString(R.string.app_name)+"\" ," +
            "\"class\":\"\"," +
            "\"package\":\"com.iovchev.christmascards\"," +
            "\"url\":\"christmascards://postcard?id="+cardId+"\"}]"
            );

这是我在获得规范 URL 时发送给 Messenger 的内容:

FacebookDialog.MessageDialogBuilder builder = 
new FacebookDialog.MessageDialogBuilder(SendCardActivity.this)
.setLink(url)
.setName("Christmas Card For You")
.setCaption("Share amazing christmas cards with your friends.")
.setPicture("http://i.imgur.com/L2KlJWQ.png")
.setDescription("To view my amazing post card just click on the link here. You must have     Christmas Cards app for Android.");
 FacebookDialog dialog = builder.build();
 dialog.present();

每当我点击 Messenger 中的消息时,我总是会被重定向到 Google Play 商店。以前一切正常,但当我尝试打开旧消息时,我的应用程序仍然会打开。之前唯一的区别是我有应用程序的 ios 参数。

我想接收我发送的带有数据的自定义模式(我的意思是明信片 id)并在我的 HomeActivity 中使用它,这就是为什么我删除了类字段的内容(当它被设置时它是发送一个没有我提供的网址的空意图)。

访问令牌字段是“app_id|app_secret”的组合

我尝试过的:

  1. 添加 ios 参数只是为了检查是否一切正常 - 不工作
  2. 强制停止并清除 facebook 和 messenger 应用 - 不工作
  3. 将类字段作为 com.iovchev.christmascards.HomeActivity 添加到 android pasams - 不工作
  4. 重新检查哈希键 - 不起作用
  5. 更改意图过滤器中类别的位置 - 不起作用

有什么想法吗?

更新 1:

对于旧链接,当您单击链接时,信使会抛出以下意图:

act=android.intent.action.VIEW dat=christmascards://postcard?id=Vi9XTnj85R&target_url=https://fb.me/1509516792632317

这就是我的应用程序启动的原因。

对于新链接,它会引发以下意图:

act=android.intent.action.VIEW dat=https://fb.me/624376077674657 cmp=com.android.chrome/com.google.android.apps.chrome.Main}. 

这就是我的应用没有启动的原因。

更新 2:

当您使用

共享链接时
FacebookDialog shareDialog = new FacebookDialog.ShareDialogBuilder(MainActivity.this)
.setLink(url)
.build();
uiHelper.trackPendingDialogCall(shareDialog.present());

一切正常。所以是信使的问题?

【问题讨论】:

    标签: android facebook deep-linking


    【解决方案1】:

    https://developers.facebook.com/bugs/831404546921822/ 这是记录的错误。这实际上是 Android 版 Facebook Messenger 中的一个错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-27
      • 2018-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多