Android 通过URL scheme 实现点击浏览器中的URL链接,启动特定的App,并调转页面传递参数

来源:互联网 发布:儿歌软件哪个好 编辑:程序博客网 时间:2024/06/04 18:37

1、首先做成HTML的页面,页面内容格式如下:

<a href="[scheme]://[host]/[path]?[query]">启动应用程序</a>

例如:

// 自动加载<iframe src="zhang://my.com/main" style="display:none"><h3>main页面</h3></iframe>// 点击跳转<a href="myscheme://www.orangecpp.com:80/mypath?key=mykey">Click</a>参数含义:    scheme:判别启动的App。 ※详细后述    host:适当记述    path:传值时必须的key     ※没有也可以    query:获取值的Key和Value  ※没有也可以

2、Android端开发

<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.VIEW"/>       <category android:name="android.intent.category.DEFAULT" />       <category android:name="android.intent.category.BROWSABLE" />       <data    android:host="my.com"    android:path="/main"    android:scheme="zhang"/></intent-filter>

3.在onCreate里面调用:

Intent i_getvalue = getIntent();String action = i_getvalue.getAction();if(Intent.ACTION_VIEW.equals(action)){   Uri uri = i_getvalue.getData();   if(uri != null){      String name = uri.getQueryParameter("name");      String age= uri.getQueryParameter("age");   }}Intent intent =getIntent();Log.e(TAG, "scheme:" +intent.getScheme());Uri uri =intent.getData();Log.e(TAG, "scheme: "+uri.getScheme());Log.e(TAG, "host: "+uri.getHost());Log.e(TAG, "port: "+uri.getPort());Log.e(TAG, "path: "+uri.getPath());Log.e(TAG, "queryString: "+uri.getQuery());Log.e(TAG, "queryParameter: "+uri.getQueryParameter("key"));显示的log信息E/MainActivity: scheme:myschemeE/MainActivity: scheme: myschemeE/MainActivity: host: www.orangecpp.comE/MainActivity: port: 80E/MainActivity: path: /mypathE/MainActivity: queryString: key=mykeyE/MainActivity: queryParameter: mykey
0 0
原创粉丝点击