weex小试牛刀
原来做cordova项目时候,调试过一次weex,没有太重视。时隔多年,哈哈。。。后期项目可能会使用到混合开发,所以重拾看一看,做个小项目把玩一番。
Weex 是一个使用 Web 开发体验来开发高性能原生应用的框架
环境搭建:
1.node环境 淘宝镜像
2.cnpm install weex-toolkit -g
3.weex create app
4.cd app
5.cnpm install
6.npm start
7.weex platform add android
8.weex run android
遇到的问题:
- weex -v 查看版本,我去,weexpack怎么还是0.xx.bate版,升级
weex update weexpack
-
http://localhost:8081 无法访问此网站,监听的是ip,那就输入ip地址吧
-
http://xxx.xx.xx.xx:8081/preview.html 找不到Cannot GET /preview.html
what,日乐购的,项目中preview.html在web目录下,那就补充全地址
http://192.168.xx.xx:8081/web/preview.html -
Failed to install app/build/outputs/apk/weex-app.apk: Failure [INSTALL_FAILED_USER_RESTRICTED: Install canceled by user]
打开USB 调试 允许usb安装 ok -
weex使用vue-router,捯饬了大半天,真是&……%%¥……&()。
在脚手架生成项目时候,有提示 是都需要使用 vue-router(不建议使用)
坑在这里,溢于言表,习惯性的以为,直接enter就是yes,一路回车,但是生成的项目中就是没有router的相关配置,package.json中也没有。
然后自己写router,在entry.js中添加,不幸的是,生成的.temp中index直接覆盖你写的。这可如何是好。
煞费周折,重新生成项目,这次命令行中y
。生成的项目中果真配置好了router。ok -
loading在web端可以正常滑动,在手机端无法滑动。这是个问题,让我翻来覆去,开始怀疑坑...,多方查找。找到了问题所在,
<scroller>
<div class="group" v-for="(item,index) in list" :key="index">
.......
<loading class="loading" @loading="onloading" :display="loadinging ? 'show' : 'hide'">
<loading-indicator class="indicator"></loading-indicator>
</loading>
</div>
</scroller>
发现了么,loading 不能被包括,应该放到外面才能被触发。修改如下
<scroller>
<div class="group" v-for="(item,index) in list" :key="index">
.......
</div>
<loading class="loading" @loading="onloading" :display="loadinging ? 'show' : 'hide'">
<loading-indicator class="indicator"></loading-indicator>
</loading>
</scroller>
-
WXFileUtils.loadAsset()编译时候能都通过,但是真机运行时候,报错,“找不到这个方法“,真是日乐购的,
解决方法,升级 weex_sdk。官方的是0.5.1,这尼玛
使用下图的没问题
image.png -
Error: Current working directory is not a weex project.
这是一个蛋疼的问题。我把node_modules依赖包和 platforms给删了。然后重新装依赖,就报这个错,呵呵。
算了,直接从别的项目中拷platforms 过来,或者自己手动创建个platforms文件夹,然后新建platforms.json 里面什么都不用写。