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

    作者:拖鞋王子猪更新于: 2021-01-10 22:07:30

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

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

      HTML简易代码

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

      

      

      

      

      functionAndroidCallJs(){

      document.getElementById("content").innerHTML=

      "Android调用了JS的无参函数";

      }

      functionAndroidCallJsParam(arg){

      document.getElementById("content").innerHTML=

      (""+arg);

      }

      

      

      

      HTMLTest

      

    Test

  

  

  

  

  

  

  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亿台。

为您推荐

课课家教育

未登录