Facebook深层链接打开谷歌播放而不是应用程序(即使安装)

时间:2013-11-19 18:20:09

标签: android facebook facebook-android-sdk

我正在尝试使用Facebook的新Mobile App Engagement用于Android,但我无法弄清楚为什么输入广告会将我带到我在Google Play上的应用安装页面,而不是打开我自己的应用所以我可以处理意图......

这是我到目前为止所做的:

1)在“Native Android App”部分(在App Basics页面上),启用“Deep Linking”。 Key Hashes看起来不错,在我的应用程序中使用Facebook登录工作正常。

2)使用Power Editor创建了一个参与广告,并将“myapp:// type / id”作为Deep Link传递

3)在我的应用主要活动中添加了以下intent-filter:

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

我也尝试过其他过滤器,例如Dan的回答here

4)点击我的FB Feed上的广告...在此步骤中,我在logcat上获得以下内容,如果使用签名应用程序(生成apk或从Play下载):

11-19 16:06:57.540: INFO/ActivityManager(446): START u0 {act=android.intent.action.VIEW dat=market://details?id=br.com.myapp flg=0x10000000 cmp=com.android.vending/com.google.android.finsky.activities.LaunchUrlHandlerActivity (has extras)} from pid 14923

如果我从IDE(IntelliJ)安装我的应用程序进入广告,那么我将获得以下日志:

11-19 16:10:30.845: INFO/ActivityManager(446): START u0 {act=android.intent.action.VIEW dat=market://details?id=br.com.myapp flg=0x10000000 cmp=com.android.vending/com.google.android.finsky.activities.LaunchUrlHandlerActivity (has extras)} from pid 14923
11-19 16:10:31.055: DEBUG/Finsky(16198): [1] AppActionAnalyzer.<init>: br.com.myapp is installed but certificate mistmatch
11-19 16:10:31.085: DEBUG/Finsky(16198): [1] DetailsDataBasedFragment.rebindViews: Page [class=DetailsFragment] loaded in [2947727 ms] (hasDetailsDataLoaded? false)
11-19 16:10:31.185: DEBUG/Finsky(16198): [1] AppActionAnalyzer.<init>: br.com.myapp is installed but certificate mistmatch
11-19 16:10:31.255: DEBUG/Finsky(16198): [1] DetailsDataBasedFragment.rebindViews: Page [class=DetailsFragment] loaded in [2947898 ms] (hasDetailsDataLoaded? true)

在这两种情况下,都会打开Goog​​le Play而不是我的应用。好像FB应用程序将Intent直接发送到市场,传递我的应用程序的ID,而不是遵循App的仪表板上指定的活动类。使用IDE安装的APP,看起来由于证书问题我甚至无法从FB收到任何内容......

那么我做错了什么让FB没有向我的应用程序发送意图?如何将我的调试证书链接到我的FB应用程序,避免此证书不匹配错误? 在此先感谢您的帮助!

2 个答案:

答案 0 :(得分:2)

要尝试的事情。

首先,您需要在意图过滤器中添加更多内容,例如:

<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="myapp"/>
</intent-filter>

其次,对于安装了IDE的应用程序,您需要为其生成密钥哈希(使用调试密钥库),并将其添加到开发人员仪表板上的密钥哈希列表中。

答案 1 :(得分:0)

确保Facebook开发者控制台中的Class Name字段也包含命名空间。因此,不只是MainActivity,而是使用com.domain.appname.MainActivity

有关此(旧)文档page的更多信息。