我们正在为Android开发Facebook AppLinks。
我们遵循Facebook开发者页面的所有指令:
https://developers.facebook.com/docs/applinks/add-to-content https://developers.facebook.com/docs/applinks/android
<meta property="al:android:url" content="mySchema://?id=3643020" /> <meta property="al:android:app_name" content="myAppName" /> <meta property="al:android:package" content="com.my.package" /> <meta property="al:android:class" content="com.my.package.screens.BrowseableActivity"/>
在标签内。
对于Schema,我们也试过这个:
<meta property="al:android:url" content="mySchema://id=3643020" />
(without the ? character)
在我们的Android应用程序中,在BrowseableActivity的Manifest中我们定义:
<activity android:name=".screens.BrowseableActivity"
android:theme="@style/Theme.myAppName.myTheme" >
<intent-filter>
<action android:name="com.my.package.screens.BrowseableActivity" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<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="mySchema"/>
</intent-filter>
</activity>
当我们测试时:
我们在App上分享了一个指向Facebook的链接,其中“link”属性是具有metas的“目标网址”。 没关系。
在Facebook Android应用程序(版本18.0.0.24.14)中,我们看到上一步中共享的帖子。
点击帖子,我们的应用程序开放了! 一切都好,直到这里。
我们的问题:
根据Intent中的Facebook文档打开我们的“BrowseableActivity”,即“数据”字段 应该有以下信息:
data: "mySchema://id=3643020?target_url=http%3A%2F%2Fwww.ourtargeturl.com%2Fdirectory"
this is: the Schema (Uri or Android Url) and the Target_url
但对我们来说,我们只有这个:
data: "http%3A%2F%2Fwww.ourtargeturl.com%2Fdirectory"
We only got the target_url.
在Facebook的这个页面(https://developers.facebook.com/docs/applinks/android),他们说 如果因为你没有在中定义meta“al:android:url”而没有收到“Schema” target_url。但是,我们定义它。
此外,在Intent的其他字段中,(附加x示例)我们没有看到“Schema”信息。
这些信息是我们需要的,我们不知道还有什么可以尝试。
谢谢,
答案 0 :(得分:2)
不要指定类名。如果指定了类名,它将使用包名/类名组合来创建具有直接针对您的app / activity的componentName的intent。那时“数据”字段中的内容实际上是未定义的。
如果您跳过指定al:android:class属性,那么它将使用您的自定义URL。