我一直在学习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。
发生了什么事,或者我做错了什么?
答案 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
的链接会打开您的应用。