整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

HTML5Plus 构建 APP 的截图保存功能

谢 DCloud 社区原作者(1091656813@qq.com:http://ask.dcloud.net.cn/article/13494),本人做了一点代码精简。

简单说下 HTML5Plus,与 Cordova(含 ionic)类似,是 js 写了中间层协议,使得打包在 APP 中的 webview 组件可以通过暴露出来的 api 接口调用原生的能力,比如页面栈控制,拍照等等。

适用于快速原型开发 APP,性能要求不是那么高的 APP 开发(90% 的 APP 性能要求都是够的)。

优点:超级简单,是个前端就能做 APP,这一条就够了!

缺点:1. 依赖自家 IDE,之前是 HBuilder,现在推新版 HBuilderX(Vue 官网也投放了广告);2. 社区环境差,非大厂不开源基本都这样(好在自家迭代还算迅速);3. 自家 UI 框架用的还是 iOS 样式,万年更新一次……

对了,附带一个小 tip:iOS 上架的 APP 必须有调用 iOS 系统接口的操作(哪怕仅仅是陀螺仪),否则被拒。Android 同样建议如此。


牵扯功能

  1. BitMap 对象截屏
  2. 在 BitMap 对象截屏回调中保存到相册(需要同意授权)

Show Me Code

// 默认截屏全屏
const obj = {
 top: '0px',
 left: '0px',
 width: '100%',
 height: '100%'
}
// 动态获取时间作为文明标识
function getDateStr() {
 return String(Date.parse(new Date()));
}
/**
 * @params {function} successCB 必填的成功回调
 * @params {function} errorCB 失败回调
 * @params {string} fileName 文件名
 * @params {string} imgID 图片 id
 * @params {boolean} overwrite 是否覆盖已有文件
 * @params {string} format 格式
 * @params {number} quality 成图质量
 * @params {object} clip 截屏区域
 */
function save(successCB, errorCB = () => {}, fileName = getDateStr(), imgID = getDateStr(),
 overwrite = true, format = 'png', quality = 50, clip = obj) {
 const cw = plus.webview.currentWebview();
 const bitmap = new plus.nativeObj.Bitmap(imgID);
 //绘制截图
 cw.draw(bitmap, function() {
 // 保存Bitmap图片
 bitmap.save('_doc/' + fileName + '.' + format, {
 overwrite,
 format,
 quality,
 clip
 }, function(i) {
 //保存到系统相册
 plus.gallery.save(i.target, function(details) {
 //销毁Bitmap图片
 bitmap.clear();
 successCB({
 success: 'success',
 details,
 });
 }, function(e) {
 //销毁Bitmap图片
 bitmap.clear();
 errorCB({
 error: '图片保存至相册失败',
 details: e
 });
 });
 }, function(e) {
 bitmap.clear();
 errorCB({
 error: '图片保存失败',
 details: e
 });
 });
 }, function(e) {
 errorCB({
 error: '截屏绘制失败',
 details: e
 });
 });
}
// 调用保存
function clickSave() {
 save(function() {
 alert('保存成功,请前往相册分享');
 })
}

都已经在注释里面,拿来即用。


建议接触 HTML5Plus 的同学保存一份,以备不时之需。

这个是这两天遇到的小 tip,希望帮到你。谢谢。

者:日照工校/徐鹏

手机浏览器能用来干什么?看资讯、看图片、看小说、看视频等等。作为上网必备工具,手机浏览器对于网络体验的影响不可忽视。随着网络的快速发展,大家对于浏览器的要求也越来越高,比如支持HTML5页面版。由于手机浏览器的内核和性能存在差异,造成不同的HTML5页面浏览有不同的体验。

近日无意中看到一个款800手机浏览器,在体验过程中,发现不论是在游戏体验还是软件特效上,都完全体现HTML5效果,为了让大家有更直观的感受,就先试用了一番。

小知识:

HTML5名词解释:原生支持多媒体功能,不再依赖浏览器插件(例如 Adobe Flash player, Windows Media Player),便可实现跨平台在线影音播放。同时 HTML5 还可以让网页调用手机的应用数据从而实现很酷的功能。另外,HTML5 新增了离线存储,一次联网加载资源,长久离线访问。广义的 HTML5 技术还包括 CSS3,JavaScript 以及支持 SVG 等。

在试用过程中,首先引起笔者注意的,还是800手机浏览器的界面化,所谓细节决定产品的成败,先来看看它的到底是什么样子。

800手机浏览器启动后,从整体上看到的,就是集成了常用的搜索引擎和常用网站,而且还可以添加新的常用页面。

跑分测试

800手机浏览器主要是面向智能手机的安卓浏览器,全面支持 HTML5。但是如果要成为一款真正的支持HTML5的手机浏览器,仅有支持还是不够的,更多的需要完全与HTML5的融合,还是先看看它的跑分结果吧:

注:测试网站Html5test.com,它是一个非常具有权威性的测试HTML5性能的网站,无论是PC端还是手机端的浏览器,都能够快速检测出当前浏览器对HTML5页面各项元素对于HMTL5的支持情况。

在HTML5 测试中,800手机浏览器得分高达惊人466分,800手机浏览器的得分完全可以媲美PC端浏览器的表现,这也大大提升了它对HTML5特效效果以及游戏的支持。

跑分测试结果已经可以说明一个很重要的方面,当然除这些数据外,本身具有HTML5的特性也是非常重要的,800手机浏览器还给我们很多HTML5体验,展现了一种对于HMTL5的一种融合以及更深的理解。

视频播放

提起HTML5,很多人都会想到视频播放。因为它完全不需要任何的插件支持,只要是浏览器支持即可,目前主流的视频网站都早已经实现,他们完全支持HTML5的视频直接播放。目前虽然还支持Flash插件,但是它会大大的增加电量消耗和性能的损耗,同时Adobe公司也宣布会停止Flash在手机端的更新。

现在,来看看800手机浏览器对于视频的表现:

HTML5视频体验网站截图

逼真的灵动效果,完全没有卡顿的现象

800手机浏览器在播放过程中没有出现视频失真或者不流畅的情况。

CCS3特性

除此之外,800手机浏览器还展示了几种HTML5独有特性,比较代表性的有CSS特性等。

CCS3是CSS语言的新版,也是一个全新时代的技术,它可以给你的图片添加圆角,可以让你的图片具有阴影特效,还可以打造一个矢量图的效果。

游戏体验

800手机浏览器不仅仅带来了一些软件上的体验,还给我们的带来了很多游戏上的体验,来看看800手机浏览器的游戏效果如何吧。

这款游戏属于一个网络游戏,支持触摸反馈,在试玩过程中,游戏的流畅度和直接下载游戏没有太大的差别。

总结:

800手机浏览器在HMTL5上表现无懈可击,给我留下很深刻的印象。它不仅仅表现在跑分测试数据上,更多的是表现在对于HTML5的融合上,是一款真正的HTML5浏览器。

瓜播放器对于手机的适配上做的不错。 西瓜播放器是 字节跳动出品的 html5 播放器,被应用在了很多场景如:抖音、西瓜视频、火山视频等头条系产品中。

视频支持 MP4、HLS、FLV、MPEG-DASH。支持画中画、倍速播放、截图等功能具体可以自己看官方文档

官网

https://h5player.bytedance.com/generate/