下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

Android专题:Android与HTML-JS交互入门

作者:拖鞋王子猪     来源: https://www.cnblogs.com/wangzizhu/p/14234600.html点击数:1986发布时间: 2021-01-11 09:28:17

标签: androidandroid studioandroid什么意思

  安卓是一种基于Linux内核(不包含GNU组件)的自由及开放源代码的操作系统。主要使用于移动设备,如智能手机和平板电脑,由美国Google公司和开放手机联盟领导及开发。Android操作系统最初由AndyRubin开发,主要支持手机。2005年8月由Google收购注资。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。

  现在的app里面会嵌套一些h5酷炫的界面,而我们的app就需要和H5进行交互,下面我们就来看看怎么进行具体的交互。

  HTML简易代码

  里面主要有两个按钮,两个JS方法

  <html>

  <head>

  <metahttp-equiv="Content-Type"content="text/html;charset=gb2312">

  <scripttype="text/Javascript">

  functionAndroidCallJs(){

  document.getElementById("content").innerHTML=

  "<br\\>Android调用了JS的无参函数";

  }

  functionAndroidCallJsParam(arg){

  document.getElementById("content").innerHTML=

  ("<br\\>"+arg);

  }

  </script>

  </head>

  <body>

  HTMLTest<br/>

  <h1><divid="content">Test</div></h1>

  <br/>

  <inputtype="button"value="点击调用Android代码"onclick="window.android.startFunction()"/>

  <br/>

  <inputtype="button"value="点击调用Android代码并传递参数"onclick="window.android.startFunction('https://blog.csdn.net/sinat_26397681?spm=1000.2115.3001.5343')"/>

  </body>

  </html>

  Android的调用方式

  //无参数调用JS的方法

  webview.loadUrl("javascript:AndroidCallJs()");

  //有参调用HTMLjs方法

  webview.loadUrl("javascript:AndroidCallJsParam("+"'https://blog.csdn.net/sinat_26397681?spm=1000.2115.3001.5343'"+")");

  开启log日志

  开启打印web的日志设置,可以看到log信息:

  webview.setWebChromeClient(newWebChromeClient(){

  publicbooleanonConsoleMessage(ConsoleMessagecm){

  LogUtils.e(TAG,"打印web日志------"+cm.message()+"--Fromline"

  +cm.lineNumber()+"of"

  +cm.sourceId());

  returntrue;

  }

  });

  添加JavascriptInterface;

  mWebView.addJavascriptInterface(newAndroidJavaScript(),"test");

  AndroidJavaScript

  publicclassAndroidJavaScript{

  @JavascriptInterface

  publicvoidtestPage(){

  LogUtils.e("test","testPage");

  }

  }

  testPage是和H5约定的名称,以上就是简易的Android和js的交互,具体的细节还需要和H5讨论。

  Webview的基本设置

  以下是webview的基本设置

  WebSettingssetting=mWebView.getSettings();

  setting.setJavaScriptCanOpenWindowsAutomatically(true);//设置js可以直接打开窗口,如window.open(),默认为false

  setting.setJavaScriptEnabled(true);//是否允许执行js,默认为false。设置true时,会提醒可能造成XSS漏洞

  setting.setSupportZoom(true);//是否可以缩放,默认true

  setting.setBuiltInZoomControls(false);//是否显示缩放按钮,默认false

  setting.setUseWideViewPort(true);//设置此属性,可任意比例缩放。大视图模式

  setting.setLoadWithOverviewMode(true);//和setUseWideViewPort(true)一起解决网页自适应问题

  setting.setAppCacheEnabled(true);//是否使用缓存

  setting.setDomStorageEnabled(true);//DOMStorage

  setting.setDatabaseEnabled(true);

  setting.setAllowFileAccess(true);

  setting.setAppCacheEnabled(true);

  setting.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);//图片太大

  setting.setDatabasePath(getActivity().getApplicationContext().getCacheDir().getAbsolutePath());

  if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.LOLLIPOP){

  setting.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);

  }

  随后Google以Apache开源许可证的授权方式,发布了Android的源代码。第一部Android智能手机发布于2008年10月。Android逐渐扩展到平板电脑及其他领域上,如电视、数码相机、游戏机、智能手表等。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。2013年的第四季度,Android平台手机的全球市场份额已经达到78.1%。2013年09月24日谷歌开发的操作系统Android在迎来了5岁生日,全世界采用这款系统的设备数量已经达到10亿台。

赞(0)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程