如何使用html网页和本地app进行传递数据呢?经过研究,发现还是有方法的,总结了一下,大致有一下几种方式
一、通过html页面打开Android本地的app
1、首先在编写一个简单的html页面
<html><head><meta http-equiv&#61;"Content-Type" content&#61;"text/html; charset&#61;UTF-8"><title>Insert title heretitle>head><body><a href&#61;"m://my.com/">打开appa><br/>body>html>
2、在Android本地app的配置
在AndroidManifest的清单文件里的intent-filte中加入如下元素&#xff1a;<intent-filter>
<action android:name&#61;"android.intent.action.VIEW" /><category android:name&#61;"android.intent.category.DEFAULT" /><category android:name&#61;"android.intent.category.BROWSABLE" /><dataandroid:host&#61;"my.com" android:scheme&#61;"m" />
intent-filter>
示例截图如下&#xff1a;
然后使用“手机浏览器”或者“webview”的方式打开这个本地的html网页&#xff0c;点击“打开APP”即可成功开启本地的指定的app
二、如何通过这个方法获取网页带过来的数据
只能打开就没什么意思了&#xff0c;最重要的是&#xff0c;我们要传递数据&#xff0c;那么怎么去传递数据呢&#xff1f;
我们可以使用上述的方法&#xff0c;把一些数据传给本地app&#xff0c;那么首先我们更改一下网页&#xff0c;代码修改后&#xff1a;
<html><head><meta http-equiv&#61;"Content-Type" content&#61;"text/html; charset&#61;UTF-8"><title>Insert title heretitle>head><body><a href&#61;"m://my.com/?arg0&#61;0&arg1&#61;1">打开appa><br/>body>
html>
&#xff08;1&#xff09;.假如你是通过浏览器打开这个网页的&#xff0c;那么获取数据的方式为&#xff1a;
Uri uri &#61; getIntent().getData(); String test1&#61; uri.getQueryParameter("arg0"); String test2&#61; uri.getQueryParameter("arg1");
&#xff08;2&#xff09;如果使用webview访问该网页&#xff0c;获取数据的操作为&#xff1a;
webView.setWebViewClient(new WebViewClient(){&#64;Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) {Uri uri&#61;Uri.parse(url);if(uri.getScheme().equals("m")&&uri.getHost().equals("my.com")){String arg0&#61;uri.getQueryParameter("arg0");String arg1&#61;uri.getQueryParameter("arg1");}else{view.loadUrl(url);}return true;}
});