(1)安装 weex-debugger 插件,安装过程和安装weex-run插件类似。
(2)ctrl + shift + p 弹出命令输入框,如下图所示输入:weex debug,然后网页会出现第 2 张截图的二维码:
(3)用手机的 Weex Playground App 的二维码进行扫描,出现以下调试页面(一定一定要注意,手机连的 WiFi 和 你开发本地网络在同一局域网)。
(4)再用手机的 Weex Playground App 的二维码扫描 Weex 应用的二维码,调试页面就会变成对应的 Weex 应用的调试页面,如下图所示。
四、Weex 项目实战
4.1、项目目录路径
下面通过一个Weex 项目来说明Weex的一些基础,项目目录结构如下:
4.2、功能模块设计
考虑到更好的体验 Weex 和 H5 在开发效率、功能性能、用户体验等方面的差异性,我们对功能模块进行精心设计,主要基于我们现有的实际项目的业务进行开发,并结合移动端特有的特性。
相关的模块功能设计如下图所示,其中红色标注部分表示,受限于开发资源、Weex 生态方面原因,我们暂时还没完成全部功能的开发。
4.3、功能界面展示
下面是Weex示例项目截取一些功能界面展示,如下图:
4.4、重要功能介绍
除了一些常规的功能开发外,以下介绍的几个功能在 Weex 官网中并没有详细介绍或者根本没有介绍,我们在开发过程中踩了不少坑,因此将踩坑经验进行汇总,帮助大家避免踩坑:
(1)登录 token 认证
(2)图片选择/上传功能
(3)websocket 功能实现
(4)手机物理键返回上一级功能
(5)Android 如何显示本地图片
4.4.1、token 认证功能
(1)token 认证介绍
在 Web 领域基于 token 的身份验证随处可见。在大多数使用 Web API 的互联网公司中,tokens 是多用户下处理认证的最佳方式。token 具有以下特性:
无状态、可扩展
支持移动设备
跨程序调用
安全
基于 token 的身份验证的过程如下:
用户通过用户名和密码发送请求。
服务端程序验证。
程序返回一个签名的 token 给客户端。
客户端储存 token,并且每次用于每次发送请求。
服务端验证 token 并返回数据。
(2)weex 和 express 之间实现 token 认证
express 服务端主要使用 express-jwt 插件,express-jwt 是 nodejs 的一个中间件,内部对 jsonwebtoken 进行封装使用。express-jwt 会验证指定 http 请求的 jsonwebtoken 的有效性,如果有效就将 jsonwebtoken 的值设置到 req.user 里面,然后跳转到相应的 router。
以下是服务端 express 的代码逻辑,代码如下:
var expressJWT = require('express-jwt'); // token 设置 app.use(expressJWT({ secret: CONSTANT.SECRET_KEY }).unless({ // 除了以下配置的地址,其他的URL都需要验证 path: ['/getToken', /^\/public\/.*/, /^\/user_disk\/.*/] })); // 登录时,需要进行用户密码认证,相应路由跳转到下面一步 app.use('/getToken', tokenRouter); // 当用户密码正确时,我们进行 token 设置 data: { token: jsonWebToken.sign({ uid: obj.uid }, CONSTANT.SECRET_KEY, { expiresIn: 60 * 60 * 1 }), }
对应的Weex的代码如下: