2

假设我有一个网页,并且我在安卓设备上的浏览器中加载了该网页。我期望的是,当我单击网页中的按钮时,可以打开一个应用程序。

有没有办法做到这一点?非常感谢。

4

4 回答 4

0

如果您可以选择自定义相关应用程序,您可以为您的应用程序独有的特定 URI 方案添加Intent 过滤器。然后在网页按钮的单击事件中,使用此 URI 方案来启动您的应用程序。

例如,Google Play 使用一种market://方案从链接打开 Google Play 应用程序。

于 2013-05-08T06:03:38.323 回答
0

使用IntentFilters 是可能的..查看以下代码:-

<intent-filter>
    <data android:scheme="**myapp**" />
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" /> <--Not positive if this one is needed
    ...
</intent-filter>

现在你可以像 myapp:// 一样启动你的应用了

于 2013-05-08T06:03:39.413 回答
0

您可以<intent-filter>使用<data>. 例如,要处理所有到 sample.com 的链接,你可以把它放在你的 AndroidManifest.xml 中:

    <intent-filter>
    <data android:scheme="http" android:host="sample.com"/>
    <action android:name="android.intent.action.VIEW" />
</intent-filter>

Felix在他的回答中很好地解释了这一点

希望这可以帮助你...

于 2013-05-08T06:13:06.687 回答
0

您可以使用返回 Uri 对象的 getIntent().getData() 。然后,您可以使用 Uri.* 方法来提取您需要的数据。例如,假设用户点击了指向http://twitter.com/status/1234的链接:

Uri data = getIntent().getData();
String scheme = data.getScheme(); // "http"
String host = data.getHost(); // "twitter.com"
List<String> params = data.getPathSegments();
String first = params.get(0); // "status"
String second = params.get(1); // "1234"    

您可以在 Activity 中的任何位置执行上述操作,但您可能希望在 onCreate() 中执行此操作。您还可以使用 params.size() 来获取 Uri 中路径段的数量。查看 javadoc 或 android 开发者网站,了解可用于提取特定部分的其他 Uri 方法。

于 2013-05-08T06:19:46.443 回答