实际上我们通常是使用WebView控件对本地html进行读取,这样就可以体会类似web app和安卓原生混合开发的乐趣了。在读取本地html并展示在前台的时候,并不需要在Androidmenifast.xml文件当中设置相应的网络权限,也不需要设置https协议,因为安卓手机的本地服务器应该都是基于http协议的,一个手机又不可能去申请一个ssl安全证书。我们只需要把WebView控件访问基于http协议的网络的代码稍作修改即可,在写代码之前,我们还需要创建一个assets文件夹,将我们所对应的html文件放置在这个文件夹里,具体创建这个文件夹的过程可以参见这篇博客:https://www.cnblogs.com/geeksongs/p/10673133.html

我们的代码如下:

 MainActivity.java

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.net.http.SslError;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.webkit.SslErrorHandler;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;public class MainActivity extends AppCompatActivity {private WebView webView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);init();}private void init(){webView = (WebView) findViewById(R.id.webView);//需要加载的网页的urlwebView.loadUrl("file:///android_asset/index2.html");//这里写的是assets文件夹下html文件的名称,需要带上后面的后缀名,前面的路径是安卓系统自己规定的android_asset就是表示的在assets文件夹下的意思。webView.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);//自适应屏幕webView.getSettings().setLoadWithOverviewMode(true);//自适应屏幕webView.getSettings().setSupportZoom(true);webView.getSettings().setUseWideViewPort(true);//扩大比例的缩放webView.getSettings().setBuiltInZoomControls(true);//设置是否出现缩放工具WebSettings settings = webView.getSettings();// 如果访问的页面中要与Javascript交互,则webview必须设置支持Javascriptsettings.setJavaScriptEnabled(true);webView.setWebViewClient(new WebViewClient(){public boolean shouldOverrideUrlLoading(WebView view, String url){view.loadUrl(url);return true;}});}}

我觉得上面注释也写得比较详细了,可以根据自己的需求根据注释作一些必要的更改。

安卓开发笔记(二十二):读取本地(内置)html文件并实现和Javascript交互相关推荐

  1. 安卓开发笔记(十二)—— 基于百度地图SDK完成地图中心定位,marker转向,动态定位

    中山大学数据科学与计算机学院本科生实验报告 (2018年秋季学期) 项目源码:Github传送门 第十七周任务 一.实验题目 地图 第十七周实验目的 接入百度地图API 掌握少量的百度地图API接口 ...

  2. 【Visual C++】游戏开发笔记四十二 浅墨DirectX教程之十 游戏输入控制利器 DirectInput专场

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 本系列文 ...

  3. 【Visual C++】游戏开发笔记四十二 浅墨DirectX教程之十 游戏输入控制利器:DirectInput专场...

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 文章链接:http://blog.csdn.net/zhmxy555/article/details/8547531 作者:毛星云(浅墨) ...

  4. 【Visual C++】游戏开发笔记四十二 浅墨DirectX教程之十 游戏输入控制利器:DirectInput专场

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 文章链接: http://blog.csdn.net/zhmxy555/article/details/8547531 作者:毛星云(浅墨 ...

  5. 【Visual C++】游戏开发笔记三十二 浅墨DirectX提高班之一 DirectX大局观认知篇

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 文章链接:  http://blog.csdn.net/zhmxy555/article/details/8172615 作者:毛星云(浅 ...

  6. Android开发笔记(十二)测量尺寸与下拉刷新

    尺寸测量的配置 控件宽和高的设置方式 大家知道,自定义视图的目的就是要在屏幕上显示期望的图案,那在绘制图案之前,我们得先知道这个图案的尺寸(如宽多少高多少). 一般在xml中给控件的宽和高有三种赋值方 ...

  7. 布尔变量 java_Java开发笔记(十二)布尔变量论道与或非

    在编程语言的设计之初,它们除了可以进行数学计算,还常常用于逻辑推理和条件判断.为了实现逻辑判断的功能,Java引入了一种布尔类型boolean,用来表示"真"和"假&qu ...

  8. 安卓开发笔记(十):升级ListView为RecylerView的使用

    概述 RecyclerView是什么 从Android 5.0开始,谷歌公司推出了一个用于大量数据展示的新控件RecylerView,可以用来代替传统的ListView,更加强大和灵活.Recycle ...

  9. Android开发笔记(一百二十三)下拉刷新布局SwipeRefreshLayout

    SwipeRefreshLayout 下拉刷新布局SwipeRefreshLayout是Android又一与时俱进的控件,顾名思义它随着用户手势向下滑动就会触发刷新操作.从实际的下拉效果来看,Swip ...

  10. Android开发笔记(一百二十六)自定义音乐播放器

    MediaRecorder/MediaPlayer 在Android手机上面,音频的处理比视频还要复杂,这真是出人意料.在前面的博文< Android开发笔记(五十七)录像录音与播放>中, ...

最新文章

  1. python3.5安装pillow_Python3.5在Windows 10上安装Pillow时出错
  2. Eclipse和MyEclipse相关的快捷键
  3. Vue项目中使用svg文件
  4. java虚拟机性能监控调优及原则
  5. 浏览器崩溃_字节跳动程序员28岁身价上亿,财务自由宣布退休;微软最新系统再迎“喜报”:更多用户的浏览器开始崩溃...
  6. 剑指offer:8-11记录
  7. PHP动态验证,php-动态更改验证规则
  8. 消息中间件系列(七):如何从0到1设计一个消息队列中间件
  9. 算法笔记_065:分治法求逆序对(Java)
  10. FYR的完整形式是什么?
  11. 专栏订阅须知《必读》
  12. MySQL学习足迹记录01--SOURCE,SHOW
  13. android第三方launcher,目前Android平台最好的Launcher
  14. mac下打开多个相同应用程序
  15. 关于 JVM 内存的 N 个问题(转)
  16. TI DSP实时操作系统
  17. 基于乾坤的微前端+SpringBoot2.7整套解决方案的基础通用平台及组件
  18. Hadoop: Rack Awareness Topology
  19. c语言数星星结构体,1469: 数星星(结构体专题)
  20. 掺铬钛酸锶Cr:SrTiO3晶体基片|NaCl<111>10x10x2.0mm1sp晶体基片|Al2O3蓝宝石晶体基片|齐岳生物

热门文章

  1. UISwitch 开关控件—IOS开发
  2. click() bind() live() delegate()区别
  3. 238.除自身以外数组的乘积
  4. java的标准注解和元注解
  5. 华为机试——数字颠倒
  6. 【C++】new A和new A()的区别详解
  7. 测试markdown的发布
  8. git-创建版本仓库-创建版本-查看版本
  9. juery-轮播图-原理与实现
  10. Mysql update 使用join更新字段