我正在尝试使用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)
在这两种情况下,都会打开Google Play而不是我的应用。好像FB应用程序将Intent直接发送到市场,传递我的应用程序的ID,而不是遵循App的仪表板上指定的活动类。使用IDE安装的APP,看起来由于证书问题我甚至无法从FB收到任何内容......
那么我做错了什么让FB没有向我的应用程序发送意图?如何将我的调试证书链接到我的FB应用程序,避免此证书不匹配错误? 在此先感谢您的帮助!
答案 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的更多信息。