NiT*_*TiN 3 android android-manifest android-intent
我一直试图从android 3.1(Honeycomb)上的浏览器调用我的应用程序 这些是我尝试过的链接,但这些都没有奏效:
<a href="com.nk.myapp://movieid=95319">click me 1</a>
<a href="intent:#Intent;action=com.nk.myapp.detail;end">click me 2</a>
<a href=intent:#Intent;action=com.nk.myapp.detail;category=android.intent.category.DEFAULT;category=android.intent.category.BROWSABLE;package=com.nk.myapp;end>click me 3</a>
Run Code Online (Sandbox Code Playgroud)
对于第1和第2个网址,它会显示"网页不可用".
对于第三个,它显示带有搜索的应用市场:pname:com.nk.myapp - >"找不到结果".
应用程序仍处于开发阶段,因此尚未进入市场.
这是我的清单文件的样子:
<activity
android:label="@string/app_name"
android:launchMode="singleTop"
android:name=".MainActivity"
android:screenOrientation="landscape" >
<intent-filter >
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter >
<action android:name="com.nk.myapp.action.DIALOG" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<intent-filter >
<action android:name="android.intent.action.SEARCH" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name=".WebViewActivity"
android:screenOrientation="landscape" >
<intent-filter>
<data android:scheme="com.nk.myapp" />
<action android:name="com.nk.myapp.detail" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)
如果你发现我做错了,请告诉我.
这是另一种方法:
为了找到uri,这是我在Test Apk中添加的内容:
Intent i = new Intent();
i.setAction("com.appname.NK_CUSTOM_ACTION");
i.putExtra("movie_id", "123456");
Log.e("IntentTest", i.toUri(Intent.URI_INTENT_SCHEME));
Run Code Online (Sandbox Code Playgroud)
哪个产生这个字符串:
intent:#Intent;action=com.appname.NK_CUSTOM_ACTION;S.movie_id=123456;end
Run Code Online (Sandbox Code Playgroud)
Html页面有这个链接:
<a href="intent:#Intent;action=com.appname.NK_CUSTOM_ACTION;S.movie_id=123456;end">click to load</a>
Run Code Online (Sandbox Code Playgroud)
并且,将清单文件更改为
<activity
android:name=".TestActivity"
android:screenOrientation="sensorLandscape" >
<intent-filter>
<action android:name="com.appname.NK_CUSTOM_ACTION" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
</intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)
在TestActivity中,您可以在下面的代码中获得movie_id:
Intent intent = getIntent();
String data = intent.getStringExtra("movie_id");
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6687 次 |
最近记录: |