fandy
fandy
  • 发布:2018-12-22 15:06
  • 更新:2023-04-21 09:33
  • 阅读:7103

Android原生集成 H5+或UniApp 最基本配置

分类:HBuilderX

1.建立Android基础工程,不使用任何插件,只需导入:

lib.5plus.base-release.aar

2.HBuiderX 里创建工程, 生成本地资源:

如:xxx/UNI342FBEF/www 文件夹
PS:切记一定要把之前的资源xxx/UNI342FBEF/www 删除,再生成。否则不会生成最新的,改动的内容没有打包进去。【浪费了好多好多时间】

3.将2中生成的本地资源,拷贝到 Android项目中的 /assets/apps/ 下。

PS:切记不要修改文件夹的名称 UNI342FBEF/www 【不要修改 不要修改 不要修改】

4. /assets/data/文件夹下 三个文件

1)dcloud_control.xml     
       **本文件中的  appid  是 3 中的 __UNI__342FBEF。必须保持一致**  
2)dcloud_error.html   
3)dcloud_properties.xml   
      本文件中 添加插件  

5. 有两种方式使用 HBuilderX生成的本地资源

1)WebAPP方式

     a) 直接拷贝下载的 SDK包里的  HBuilder-Integrate-AS 工程中的  SDK_WebApp.java文件到自己的项目中。  
     b)SDK_WebApp.java文件中修改如下:   
     public void onCoreInitEnd(ICore coreHandler) {  

    // 表示Webapp的路径在 file:///android_asset/apps/HelloH5  
    String appBasePath = "/apps/__UNI__342FBEF";  
    }  

      c) 修改 AndroidManifest.xml文件:  
          1)必须添加权限:  
             <uses-permission android:name="android.permission.INTERNET" />  
           2)<application 是否修改 无所谓,如果修改如下:  
                    ```javascript  
                    <application  
                      tools:replace="android:name"  
                      android:name="com.fandy.plugins.PluginsApp" //自己的Application  
                         ...  
            3)注册activity  
                    <activity  
                      android:name=".SDK_WebApp"  
                           ...  

2)WebView方式

     a) 直接拷贝下载的 SDK包里的  HBuilder-Integrate-AS 工程中的  SDK_WebView.java文件到自己的项目中。  
     b)SDK_WebView.java文件中修改如下:   
            @Override  
public void onCoreInitEnd(ICore coreHandler) {  
    // 设置单页面集成的appid  
    String appid = "__UNI__342FBEF";  
    // 单页面集成时要加载页面的路径,可以是本地文件路径也可以是网络路径  
    String url = "file:///android_asset/apps/__UNI__342FBEF/www/__uniappservice.html";  
       **PS: url路径中的__uniappservice.html 是从 /assets/apps/__UNI__342FBEF/www 文件夹下 manifest.json文件中的 "launch_path" 值得到。**  

6 Android app build.gradle 文件修改:

    android {  
            ...  
        defaultConfig {  

            multiDexEnabled true  
            ndk {  
                abiFilters 'x86','armeabi'  //使用uniapp时必须同时选择二者或选其一  
            }  

        }  
               ...  

        //使用uniapp时,需复制下面代码  
        /*代码开始*/  
        aaptOptions {  
            additionalParameters '--auto-add-overlay'  
            //noCompress 'foo', 'bar'  
            ignoreAssetsPattern "!.svn:!.git:.*:!CVS:!thumbs.db:!picasa.ini:!*.scc:*~"  
        }  
        /*代码结束*/  
    }  

    repositories {  
        flatDir {  
            dirs 'libs'  
        }  
    }  

    dependencies {  
          ...  
        compile(name: 'lib.5plus.base-release', ext: 'aar')  
        ...  

    }  

7 准备工作做完了。 不要高兴太早。

 切记一定要【 clean project】一定要【 clean project】一定要【 clean project】 太坑爹呀。  
 如果不【 clean project】,直接【run】,更新了的 本地资源【/assets/apps/__UNI__342FBEF】不会打包到apk中。 坑爹呀。  
1 关注 分享
ai666

要回复文章请先登录注册

zhlambo

zhlambo

现在还能这么用?3.7.9的版本,没有这些java文件了
2023-04-21 09:33
单倾伊

单倾伊

回复 sarr :
请问一下您使用webApp加载uniapp具体是怎么做的,是使用PandoraEntry这个类来加载还是如何做的
2019-11-15 09:58
1***@qq.com

1***@qq.com

mark
2019-10-02 03:59
sarr

sarr

回复 9***@qq.com :
我这边测试了只能使用webApp方式加载uniapp导出的资源包,想问下webview方式您这边成功了嘛
2019-06-24 14:44
sarr

sarr

那个我想问下,webview可以加载uniapp导出的资源包嘛
2019-06-24 14:43
9***@qq.com

9***@qq.com

createWebview无法加载uni-app项目导出的资源包
2019-05-26 11:22