本文总体根据官网链接 集成 Weex 到已有应用 进行集成,下面列出了遇到的问题及解决办法。
1. ReferenceError: Vue is not defined
跟着官网的教程开始集成后你会发现项目跑起来后会提示
1 | E/jsengine: ReportException :undefined:5: ReferenceError: Vue is not defined |
查了资料才发现这是官网文档未及时更新的缘故,只需要将依赖导入语句修改如下然后重新编译即可
1 | // 更新 weex_sdk 为较新版本即可,可以去 jcenter 查找release version |
同时,官网文档的 render 方法也需要修改如下
1 | mWXSDKInstance.render("WXSample", WXFileUtils.loadFileContent("index.js", this), null, null, -1, -1, WXRenderStrategy.APPEND_ASYNC); |
2. JSBundle 资源生成
Android 加载 weex 和加载 React Native 类似也是要提供个 JSBundle 文件. 我们 weex create
后生成的项目文件都是以 .vue 后缀名结尾的,在引入 Android 之前,我们需要进行些处理才能放入 Android 项目的 assets 目录中供 WeexSdk 调用: 在项目根目录运行 npm run build
编译完成后会在dist目录下生成文件,每个vue文件会生成对应的js, 然后我们将 dist 文件夹内的 *.js 文件拷贝到 Android Assets 目录下即可