按照官方的方案,我们如果进行本地打包的话,需要重新创建一个Android原生工程,于是就会导致我们管理多个项目,切来切去的也麻烦。
经过一番折腾,觉得完全可以像React Native一样,在同一个项目中集成uni-app和Android两个项目。
具体操作如下。
- 在uniapp项目下创建一个platforms目录,再在此目录下创建一个android目录
- 将Android原生工程拷到
platforms/android
下,目录结构如下
- 在
.gitignore
中添加:
# Android
*.apk
*.iml
.gradle
platforms/android/local.properties
# package
platforms/android/app/build
platforms/android/app/release
platforms/android/app/src/main/assets/apps
- 修改
package.json
:
{
"scripts": {
//...
"build:app-plus": "cross-env NODE_ENV=production UNI_PLATFORM=app-plus UNI_OUTPUT_DIR=platforms/android/app/src/main/assets/apps/__UNI__84417FE/www vue-cli-service uni-build",
"dev:app-plus": "cross-env NODE_ENV=development UNI_PLATFORM=app-plus UNI_OUTPUT_DIR=platforms/android/app/src/main/assets/apps/__UNI__84417FE/www vue-cli-service uni-build --watch",
},
// ...
}
在 build:app-plus
和 dev:app-plus
中添加 UNI_PLATFORM
选项,指定输入目录为Android项目下的资源路径,其中__UNI__84417FE
是uniapp的appid,需要换为自己项目的appid。
ok,完成,这样就可以了。