【发布时间】:2014-05-03 22:40:32
【问题描述】:
我试图在 android 上拦截我自己的应用程序的 URL,以便用户可以在应用程序中而不是在浏览器中打开 URL。 (我还没有浏览器支持)。
这就是我正在做的事情
<activity android:name=".ui.activity.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>
<action android:name="android.intent.action.PICK_ACTIVITY" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="http" />
<data android:host="myapp.com" />
<data android:pathPattern=".*"/>
</intent-filter>
</activity>
出于某种原因,无论何时我打开myapp.com,它仍然会在浏览器中打开,而我没有选择在我的应用程序中打开 URL。我正在运行 API 16 的模拟器上尝试此操作。我已经关闭了几次模拟器并再次启动它,但仍然是相同的行为。
为了避免我的个人应用程序的 URL 出现任何错误。我什至尝试过:
<data android:host="goo.gl" android:scheme="http" />
<data android:host="goo.gl" android:scheme="https" />
该应用确实拦截了上述网址,但只是第一次。如果我在显示的选项中单击“仅一次”,则在重新启动模拟器之前我不会再获得该选项。
有人经历过吗?我可能做错了什么?
【问题讨论】:
-
删除
android:pathPattern,因为您似乎没有使用它,看看是否有帮助。