感谢 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 同样建议如此。
牵扯功能BitMap 工具截屏在 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,希望帮到你。感激。