我想让我的应用程序在浏览器中输入特定网址(如chrome或internet)时打开。为此我已经提到并搜索了这个主题,我注意到的是类似的,我在我的清单文件中使用但仍然不起作用。 我在下面提到了我的问题的链接
Launching custom Android application from Android browser / Chrome
Launch custom android application from android browser
How to open android application when an URL is clicked in the browser
Intercepting links from the browser to open my Android app
所有这些都有相同的答案,但是当我使用它时它没有任何效果,当我输入网址www.myurl.co.gdf或http://www.myurl.co.gdf它没有提示用户它在浏览器中打开而不是打开myapp或显示选择对话框
我在清单文件中使用的代码如下
<application
android:icon="@drawable/logo"
android:label="@string/app" >
<activity
android:name="com.app.secondActivity"
android:configChanges="orientation|keyboardHidden"
android:label="@string/service"
android:screenOrientation="portrait"
android:theme="@style/aa_theme" >
<intent-filter android:label="@string/app" >
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<data
android:host="www.myurl.co.gdf"
android:pathPrefix="/"
android:scheme="http" >
</data>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.VIEW" />
</intent-filter>
</activity>
<activity
android:name="com.app.firstActivity"
android:configChanges="orientation|keyboardHidden"
android:label="@string/activity_title"
android:screenOrientation="portrait"
android:theme="@style/aa_theme" />
</application>
如果这对其他人有效,为什么不为我? 注意:我已经在清单中更改为上面的代码,并且我没有更改或添加任何额外的.java文件或任何其他文件。
为了使这个工作,我应该进行任何设备设置更改,或者我应该添加Uri intentUri = getIntent()。getData();在.java文件中(应该使用那么为什么?)或者我应该在浏览器中输入不同的内容,还是我在错误的活动中使用了intentfilter,或者我有什么遗漏?
我正在使用一些cordova插件到这个应用程序,我不认为这与打开应用程序有关。
我对android很新,请给我一些关于此的想法..
答案 0 :(得分:0)
问题不在于您的代码 - 它与您的测试策略有关。
在浏览器中键入网址通常不会启动Intent
,因此Android不会检查是否有任何其他应用可以处理该网址。例如,当用户键入Chrome链接时,Chrome会假定用户想继续使用Chrome,并会处理浏览到网址。
相反,您需要创建一个包含您的网址的意图,以测试Android是否会正确处理与您的应用程序的深层链接。
最简单的方法是通过以下ADB命令:
adb shell am start
-W -a android.intent.action.VIEW
-d http://www.myurl.co.gdf/