weex笔记(4)weex热更新方案
原理:利用bsdiff/bspatch开源工具。 服务端利用bsdiff工具,对比新老dist.zip(包含编译后的js文件)生成较小的差分文件,下发到客户端。 客户端利用bspatch工具,将差分文件和老dist文件生成新的dist。 具体方案: 服务端: 每次发布一个新版本自动打包一个dist.zip 利用bsdiff与所有老版本的dist.zip分别生成差分包 检测版本更新接口至少上传一个个参数:oldVersion。匹配若不是最新版需要返回对应差分包的下载地址 客户端: 检测版本更新,下载差分包 利用bspatch,将本地olddist.zip和差分包合成新的dist.zip包 设计两种版本更新方式 大版本更新,弹框告知强制更新; ...
weex笔记(5)weex--iPad适配
公司项目用weex已经完成了iPhone版本,突然接到需求需要iPad版本。打开xcode直接运行在iPad上,发现奇丑无比,所有控件都被等比放大了。在公司大佬的指点下,发现了一个神奇的功能。meta.setViewport()官网文档入口大概意思是会可以用这个方法改变默认的最大宽度750px。我猜想没改这个属性之前的逻辑应该是这样的 设备当前宽度/750 -> scale这个scale就是缩放比例,然后所有的控件和字体都会按照这个scale去缩放。 那如果是这样的话我调用修改为iPad的宽度768*2=1536是不是就会一比一了呢。直接上码 1234567 beforeCreate(){ const meta = weex.requireModule('meta')// 配置 viewport 的宽度为 1536px meta.setViewport({ width: 1536 ...
weex笔记(6)weex-iOS端扫描调试工具
最近开发weex发现调试起来很费劲,习惯原生开发的每次都要重新run,应为自己写了很多module不能用官方weexplayground扫描调试。于是,萌生了一个想法,写一个扫描调试工具。 第一步把官方的weexplayground项目clone下来地址在ios/playground目录下找到 把WXATScanPlugin.h WXATScanPlugin.m DemoDefine.h WXScannerVC.h WXScannerVC.m拉到项目中,稍作修改。 修改WXScannerVC.m中的weex容器改成自己的ViewController4.还有一步,由于weex中写死了push xxx.js是本地js文件,所以在每次跳转的时候都需要判断一下是否需要调整到远程的js5.最后需要拉取远程js的路径,通过脚本将dist目录下的所有文件都列出来写入到文件中,在iOS项目启动的时候去读取js文件路径,拼接到远程ip后就OK了。附上demo工程运行可能会报autolistjspath.sh脚本运行错误,多半是脚本里面路径不存在。把cd...
weex笔记(7)weex-优雅进度条
最近要做一个比较大的进度条,发现weex-ui在有圆角的情况下不是特别优雅。于是自己写了一个。圆角情况下更优雅。 GitHub链接 npm i wk-progress --save命令也可以。不过不知道为什么引用老是有问题,知道的小伙伴麻烦指点一下
weex笔记(8)一些weex-studio----vscode提高效率插件和设置
插件 自动提示路径插件AutoFileName 代码美化Beautify、vetur vue代码片段自动提示Vue2 Snippets es6代码提示 JavaScript(ES6) code snippets 代码规范检查器 Eslint 设置 新建文件输入vue回车自动创建vue模板首选项–用户代码片段–vue.json输入12345678910111213141516171819202122232425262728293031{ "Print to console": { "prefix": "vue", "body": [ "<template>", " <div></div>", "</template>", "", "<script>", "export default...
weex笔记(9)weexstudio运行卡
mac格式化重装了一下,用brew安装的node。然后运行weexstudio编译工程发现特别卡,同事电脑却很流畅。通过查看同事电脑npm和node版本号把自己电脑的node和npm升级成相应的版本号,发现流畅许多。版本号为npm@6.4.1node@v10.6.0