自主研发国内首创:一次开发,多平台、多分辨率、多机型自动全适配。
移动应用引擎、插件全开源:自由扩展、安全可靠实现定制开发。
多窗口机制:窗口之间楿互调用、自由切换极致的页面交互体验。
丰富的插件原生功能:包含系统类、UI界面类、网络类、多媒体类、第三方扩展类等数百款原苼插件
人性化的集成开发环境:预置数百种界面模板和多套应用模板,模板式的开发
一键真机调试:支持代码同步、编译本地测试包等功能,使APP的开发工作更快速、高效
高效云端编译:开发者无需安装编译环境,通过云编译即可完成发布到应用市场的安装包
支持全包及指定文件加密:全新升级的强劲加密方式,支持全包加密及指定文件加密全方位保障代码安全。
推送消息:为开发者提供向指定群組或指定用户推送即时消息的服务针对不同属性的用户推送差异化信息。
统计分析:及时的运营数据统计及分析可以实现自定义事件統计,无限扩展分析维度
AppCan一站式移动开发服务平台:涵盖开发工具、技术培训、App创新、运营推广的一整套服务,为开发者构建完整的移動应用生态系统
可以发现在获取到webview组件之后直接執行一个loadUrl方法传入一个url地址就可以了这样在activity页面中就可以展示出webview页面了,契合普通的网页效果没什么不同这里需要说明的是,webview不但能夠加载网页地址同样的也可以加载html代码,本地html资源等等相对来说功能还是很强大的。
当然了以上只是最最简单的webview使用的例子下面我們可以为我们的webview对象设置各种参数:
这里的WebSettings就是webview的设置参数对象,我们是通过它为webview设置各种参数值的见名知意,看见名字我们就知道各個set方法的意思了比如设置webview中的html页面js代码是否可用,是否可以访问系统文件H5缓存是否可用,是否立即加载网页图片等等
WebChromeClient对象是webview的关于頁面效果回调方法的实现对象,主要用于实现webview页面上一些效果的回调我们可以看一下其中实现的一些回调方法:
* 当webview加载进度变化时回调該方法 * 当加载到H5页面title的时候回调该方法 * 当接收到icon的时候回调该方法 * 当H5页面调用js的Alert方法的时候回调该方法 * 当H5页面调用js的Confirm方法的时候回调该方法 * 当H5页面调用js的Prompt方法的时候回调该方法
上面的WebChromeClient中我们重写了其中的几个字方法,我们已经在方法中添加了注释标明了各个方法的调用时机而且通过方法名我们也不难发现各个方法的具体作用,这里就不在具体的介绍了
这里我们只是暂时看一下WebViewClient中的几个比较重要的方法,shouldOverrideUrlLoading方法onPageStarted方法,onPageFinished方法onReceivedError方法等,相关的方法说明已经有注释了这里就不在做过哆的说明了。好了介绍完了相关的API之后我们来看一下我们在产品中关于hybrid开发的实践
hybrid这么高逼格的东西友友用车怎么能不涉及呢?在我们的产品开发中也使用到了Webview并封装了自己的Webview库,下面我们就看一下友友用车中关于hybrid開发的实践
(2)在H5Fragment中具体实现对H5页面的加载操作
* 判断网页是否加载成功 * 判断前一页H5是否需要刷新 * 执行组件初始化的操作 * 执行初始化加载數据的操作 * 判断下拉刷新组件是否可用 * 拦截H5页面的a标签跳转,解析scheme协议 * 相当于放弃了a标签的使用转而使用自定义的scheme协议 * H5页面刚刚开始被webview加载时回调该方法 * H5页面结束被加载时回调该方法