Android原生运行uniapp使用5+app创建项目时的SDK集成步骤(一)

  1. 前言:
    博主是Android码农,所以文章是以Android为基础来集成的.
  2. uni-app相关介绍
    官网:https://uniapp.dcloud.io/
    io.dcloud.EntryProxy的api文档址:https://www.dcloud.io/docs/sdk/android/
  3. SDK下载地址:https://ask.dcloud.net.cn/docs/#//ask.dcloud.net.cn/article/103

开始集成
1:打开android studio 新建一个空项目
2:先下载SDK,需要用到里面的arr文件和一些资源文件,在HBuilder-Integrate-AS文件夹里面找到并且复制出里面的lib.5plus.base-release.aar文件到as项目里面的app/libs目录下面,并在main目录下面新建asstes/apps和asstes/data目录.如图:在这里插入图片描述
在这里插入图片描述
3:打开app/build.gradle文件,填写相关配置并同步一下,如图:
在这里插入图片描述
4:在as项目里面打开AndroidManifest.xml,填写相关配置.

<supports-screens
        android:anyDensity="true"
        android:largeScreens="true"
        android:normalScreens="true"
        android:resizeable="true"
        android:smallScreens="true" />

添加权限,这个就不多说了(博主是配置的最基础的权限.如需其他权限,按需添加即可)

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

注意事项
4-1:application一定要是io.dcloud.application.DCloudApplication.你可以直接在AndroidManifest.xml填写上,也可以自己写你的application去继承DCloudApplication.两种方式都可以.
4-2:启动策略一定要用这个io.dcloud.PandoraEntry.不然你运行出来的项目就会在启动页停留并且一直转圈圈,啥反应也没有.

<activity
            android:name="io.dcloud.PandoraEntry"
            android:configChanges="orientation|keyboardHidden|screenSize|mcc|mnc|fontScale"
            android:hardwareAccelerated="true"
            android:screenOrientation="user"
            android:theme="@style/TranslucentTheme"
            android:windowSoftInputMode="adjustResize">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

这里如果项目启动项比如是mainActivity,那么就让mainActivity去继承PandoraEntry这个类.把握一点就可以,只要加载uniapp或5+app就一定要用PandoraEntry的启动策略.
4-3:配置已webApp为基座的相关配置

<activity
            android:name="io.dcloud.PandoraEntryActivity"
            android:configChanges="orientation|keyboardHidden|screenSize|mcc|mnc|fontScale|keyboard"
            android:hardwareAccelerated="true"
            android:launchMode="singleTask"
            android:permission="com.miui.securitycenter.permission.AppPermissionsEditor"
            android:screenOrientation="user"
            android:theme="@style/DCloudTheme"
            android:windowSoftInputMode="adjustResize">
            <intent-filter>
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />

                <action android:name="android.intent.action.VIEW" />
                <data android:scheme="h56131bcf" />
            </intent-filter>
        </activity>

这里的PandoraEntryActivity点击进去他是继承的WebAppActivity,同理,你也可以自己新建类去继承它WebAppActivity并重新.

个人的理解PandoraEntryActivity就是用来加载一个插件app的基座,类似插件化.把插件apk打包编译出来,使用PandoraEntryActivity去加载这个插件apk. 在次强调,这个个人理解,非官方.

这个为什么是这个h56131bcf.博主还没理解,查阅资料也不知道.最开始理解的是uniapp官网上面的APPid.发现填空值或些其他值也可以使用.有人知道的话,可以评论留言一下.

5:打开HBuilderX 新建项目选择5+App,然后发行.如下图
在这里插入图片描述
在这里插入图片描述6:这里的H566800AA文件夹名称就是对应uniapp官网控制台里面的appid.将这个文件夹复制到as项目目录assets/apps/目录下面,如下图:
在这里插入图片描述在这里插入图片描述
7:然后将官网下载的SDK里面HBuilder-Integrate-AS/app/src/main/asstes/data/dcloud_properties.xml文件和HBuilder-Integrate-AS/app/src/main/asstes/data/dcloud_control.xml文件,复制到as对应的data目录下面.
注意:
dcloud_properties.xml这个文件是hbuilderx打包的时候配置文件,可以忽略,按需配置.缺少这个文件,在原生APP里面就会提示"打包时未添加xxx模块…".具体参考:http://ask.dcloud.net.cn/article/283
dcloud_control.xml这个文件就是必须要配置的,不可缺少.其中apps标签里面对应你的官网发行的appid. appver可以随便写,不碍事.hbuilder version网上查阅资料说不可修改.但是实际修改成其他数值也可以运行.

<hbuilder version="1.9.9.71156">
    <apps>
        <app appid="H566800AA" appver="1.0.0"/>
    </apps>
</hbuilder>

在这里插入图片描述

最后附上博主直接运行官方提供的SDKdemo遇到的问题解决办法:
1报错META-INF/MANIFEST.MF相关的资源包文件冲突.可以参考这篇
博主是直接删掉了demo里面libs里面一些无用的相关jar和aar包.
2:报错 Gradle DSL method not found: 'apply()相关.可以参考这篇
3:博主是Androidx环境.所以相应的一些包都要迁移到Androidx上面,具体的迁移方法百度上有很多教程.百度一下,你就知道

注意 注意 注意
此篇文章,是基于在HBuilderX里面新建5+app离线打包发行出来,在原生Android环境为壳子,使用webview方式来加载本地的资源文件.
你也可以加载网络H5地址.具体方法.官方demo里面有说明,只要你这篇文章理解了并成功运行,相信你也可以适当修改做到加载网络地址的.

下一篇,将介绍基于在HBuilderX里面新建uni-app离线打包发行出来,在原生Android环境为壳子,使用widget方式来加载本地的资源文件,不要和本篇文章概念搞混淆了.

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值