按照官方的方案,我们如果进行本地打包的话,需要重新创建一个Android原生工程,于是就会导致我们管理多个项目,切来切去的也麻烦。

    经过一番折腾,觉得完全可以像React Native一样,在同一个项目中集成uni-app和Android两个项目。

    具体操作如下。

    1. 在uniapp项目下创建一个platforms目录,再在此目录下创建一个android目录
    2. 将Android原生工程拷到platforms/android下,目录结构如下

    📃 在uni-app项目中集成Android原生工程 - 图1

    1. .gitignore中添加:
    1. # Android
    2. *.apk
    3. *.iml
    4. .gradle
    5. platforms/android/local.properties
    6. # package
    7. platforms/android/app/build
    8. platforms/android/app/release
    9. platforms/android/app/src/main/assets/apps
    1. 修改package.json
    1. {
    2. "scripts": {
    3. //...
    4. "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",
    5. "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",
    6. },
    7. // ...
    8. }

    build:app-plusdev:app-plus 中添加 UNI_PLATFORM 选项,指定输入目录为Android项目下的资源路径,其中__UNI__84417FE 是uniapp的appid,需要换为自己项目的appid。

    ok,完成,这样就可以了。