Android的URL意图未触发

时间:2015-08-03 21:09:28

标签: java android android-intent android-activity

我一直在学习Java一段时间来开发Android应用程序。此时,我希望我的网站重定向到我的应用程序。这应该可以使用我的网站url的Intent过滤器。我以stackoverflow.com主页为例。

我在Android Manifest的MainActivity部分使用此代码:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="nl.example.webitent" >

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            <intent-filter>
                <data android:scheme="http" android:host="stackoverflow.com"/>
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <action android:name="android.intent.action.VIEW" />
            </intent-filter>
        </activity>
    </application>

</manifest>

到目前为止,没有什么有趣的。这实际上是添加了intent-filter的新项目中的空白活动。我有target-sdk 21和最小sdk 16.但是,无论我尝试什么,当我去stackoverflow.com时,它都不会直接触发,既不直接也不通过href。

发生了什么事,或者我做错了什么?

1 个答案:

答案 0 :(得分:0)

当您在浏览器中访问stackoverflow.com时,不会触发意图。仅当应用程序显式执行此操作时才会触发intent。如果应用程序(您的浏览器)不应该打开您的网址方案,则会出现这种情况。例如,mailto在您的Mail-App中打开。所以你必须像这样创建自己的URL方案

        <intent-filter>
            <data android:scheme="myweb" android:host="stackoverflow.com"/>
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <action android:name="android.intent.action.VIEW" />
        </intent-filter>

然后指向myweb://stackoverflow.com的链接会打开您的应用。