0

我的 AndroidManifest.xml 文件中有以下内容,适用于我在 Google Play 上的应用

    <activity
        android:name="com.enigmadream.picturecode.Viewer"
        android:exported="true"
        android:label="@string/title_activity_viewer"
        android:parentActivityName="com.enigmadream.picturecode.Editor" >
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="com.enigmadream.picturecode.Editor" />

        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.BROWSABLE" />
            <category android:name="android.intent.category.DEFAULT" />
            <data
                android:host="picturecode.enigmadream.com"
                android:scheme="http" />
        </intent-filter>
    </activity>

我认为它工作得很好。如果您单击来自 Google+的链接,它似乎仍然可以正常工作- 当您单击使用服务器名称的链接时,它提供了启动我的应用程序而不是浏览器的选项picturecode.enigmadream.com。但是,当我从 Facebook 或 Chrome 中单击指向 picturecode.enigmadream.com 的链接时,它不提供该选项,而只是导航到 Chrome 中的页面。我错过了什么?

4

1 回答 1

2

您需要使用自己的方案(例如,picturecode://)。Facebook 和 Chrome 可能都可以自己处理 http 方案,因此不要检查是否有任何其他活动可以处理它。这样做的结果是,对于较短的 URI,您可能也不需要将主机放在适当的位置。只是picturecode://01sv...。当然,您也可以保留此过滤器。如果浏览器访问该页面,只需有一个指向正确 URI 的链接,或者甚至在可能的情况下自动重定向。

作为参考,您可以看到 Google Play 使用 market:// 方案以这种方式工作。

于 2013-05-02T14:22:13.937 回答