WebView详解及使用说明;(android外壳项目总结版)
来源:互联网 发布:php网站开发流程图 编辑:程序博客网 时间:2024/06/06 03:05
最近做了一个关于webview写安卓的壳,套HTML5的应用,虽然整个写下来后,到了目前的进度,代码量不多,共有1000多行,但是整个壳的设计思想和实现思路还是当初查了很久的。所以写下来,以备后续查看和分享。
这个webview的壳目前实现的功能我将从三方面说明并总结。
1. 最基本的功能:
- 增加useragent以便HTML5判断出是哪个应用
- 设置webSetting缓存
- 拦截url并将相应网络资源替换成本地资源
- javascript和android交互
- 网络状态监听
- HTML进度条替换成Android原生进度条,以及onPageFinished中遇到的坑
- 口语评测打分
- 下载资源包并在本地解压,本地MP3的播放、暂停以及退出并返回当前的播放进度。
- 本地录音并存储为PCM格式,本地PCM的播放
- 消息推送功能
下面进行详细说明:
- 最基本的功能
- 增加useragent以便HTML5判断出是哪个应用(android或者ios)(这里的android_agent和HTML商量好就可以)
- 设置webSettting缓存
- 拦截url并将相应网络资源替换成本地资源
我们将一些固定不变的图片放到工程的assets文件下,然后拦截网络的url进行替换,这样用户在第一次进入界面时,就不会因为加载图片而花费较长时间,造成用户体验不好,但是如果拦截到相应的的url时间长了,页面依旧会加载比较长的时间,但这个Android就无能为力了。
拦截替换函数如下:
虽然看着代码很多,但是其实有用的只有 WebResourceResponse response = null;以及response = new WebResourceResponse("text/vtt", "UTF-8", fin);这两句
- js和android交互
webView.loadUrl("javascript:DM.progress("+percent+")");
其中DM.progress是HTML的方法,percent是android需要传过去的参数,其他为固定内容。
js调用android的代码方法:
webView.addJavascriptInterface(new JsToJava(), "record");
JsToJava()是android里面自己写的类,这个类中所有的函数都可以被JS以window.record.XX(); 方式调用,其中XX是函数名。需要特别注意的是XX函数上要添加@SuppressLint("JavascriptInterface"),否则调用会无响应
@SuppressLint("JavascriptInterface")public void initWebView() {
}
2.增加用户体验的功能
- 网络状态的监听
- HTML进度条替换成Android原生进度条,以及onPageFinished中遇到的坑
然后在onPageFinished函数中进行调用即可
new TimeControlTask().execute();
- 口语评测打分,采用的科大讯飞语音打分的技术,具体请点开超链接,参考文档。
- 下载资源包并在本地解压,本地MP3的播放、暂停以及退出并返回当前的播放进度。这里需要说明的是,下载资源包使用的是OKHttpUtils
- 消息推送功能,集成的是友盟的推送。
暂时功能模块如上所述,如果有更新新功能,还会回头来补充这篇文章。
2 0
- WebView详解及使用说明;(android外壳项目总结版)
- Android WebView属性及Js交互总结
- android WebView总结(转)
- 项目笔记---WebView详解
- webView项目总结(持续更新...)
- Android WebView(一) WebView详解
- WebView--- Android WebView使用总结
- Android WebView系列文章3 WebView其他使用说明
- Android之PullToRefresh(ListView 、GridView 、WebView)使用详解和总结
- android 项目学习随笔十四(WebView)
- svn使用说明及常用命令总结
- Android WebView详解(加速加载篇)
- Android webView使用详解(Cookies)
- Android中WebView详解
- Android WebView 详解
- Android WebView应用详解
- android之WebView详解
- Android中WebView详解
- Android提高代码质量-工具篇
- jdk jre的区别和SE EE ME 的介绍
- Java开发之Spring MVC(五)
- 2016夏季练习——ST表
- ubuntu16.04卸载gnome桌面
- WebView详解及使用说明;(android外壳项目总结版)
- Java Scanner(读取输入)
- 学习动画总结 -- CAEmitterLayer(粒子系统)
- android复习一——常用命令AS指令
- Objective-C 与 Swift 混编
- 龙与地下城游戏问题
- DELPHI XE Android 开发笔记
- HDU(1242) Rescue
- ObjectAnimation 简单用法