uni-app接入记录。androidstudio集成文档:官方文档
注意事项:
targetSDK 最高28最优26 设置值域超过28可能在android10以上手机出现白屏问题。
miniSDK 须为19及以上(在官方的demo中这样说的)
ndk仅支持:‘x86’,‘armeabi-v7a’,“arm64-v8a” 不支持armeabi
若uni小程序集成的第三方依赖库与宿主发生冲突
目前 uni小程序sdk 仅支持同时运行一个小程序实例,启动下一个小程序需关闭上一个小程序
下载uni小程序 SDK 详情;androidstudio项目里须集成:
(注意:必须集成的依赖库一定要集成,否则会导致小程序无法正常运行;)
(不要只拷贝依赖库(aar资源)。SDK根目录下的其他资源(非Libs)必须要拷贝到项目中的)
(ps:实验证明:集成了基础uni-app SDK的app比空白的app 体积要多8MB)
uniMPSDK-release.aar //必须集成
uniapp-release.aar //必须集成
sqlite-release.aar
miit_mdid_1.0.10.aar //必须集成
messaging-release.aar
iBeacon-release.aar
fingerprint-release.aar
contacts-release.aar
Bluetooth-release.aar
android-gif-drawable-release@1.2.17.aar //必须集成
//必须配置
def mfph = [
//宿主包名
"apk.applicationId" : "xxx.xxx.xxxxx",
]
android {
defaultConfig {
ndk {
abiFilters 'armeabi-v7a' //不支持armeabi
}
}
//此处配置必须添加 否则无法正确运行
aaptOptions {
additionalParameters '--auto-add-overlay'
//noCompress 'foo', 'bar'
ignoreAssetsPattern "!.svn:!.git:.*:!CVS:!thumbs.db:!picasa.ini:!*.scc:*~"
}
}
//导入aar需要的配置
repositories {
flatDir {
dirs 'libs'
}
}
dependencies {
//导入SDK相关依赖jar、aar
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation fileTree(include: ['*.aar'], dir: 'libs')
//必须添加的依赖
implementation 'com.android.support:recyclerview-v7:27.1.0'
implementation 'com.android.support:support-v4:27.1.0'
implementation 'com.android.support:appcompat-v7:27.1.0'
implementation 'com.alibaba:fastjson:1.2.66'
implementation 'com.facebook.fresco:fresco:1.13.0'
implementation 'com.facebook.fresco:animated-gif:1.13.0'
implementation 'com.github.bumptech.glide:glide:4.9.0'
implementation 'com.android.support:multidex:1.0.3'
}
将官方demo的assets目录里的文件导入。
创建apps/小程序名/www 文件夹,将生成的小程序解压缩并放入。【注:小程序代码请见步骤二】
public void onCreate() {
super.onCreate();
//初始化 uni小程序SDK ----start----------
MenuActionSheetItem item = new MenuActionSheetItem("关于", "gy");
MenuActionSheetItem item1 = new MenuActionSheetItem("获取当前页面url", "hqdqym");
MenuActionSheetItem item2 = new MenuActionSheetItem("跳转到宿主原生测试页面", "gotoTestPage");
List<MenuActionSheetItem> sheetItems = new ArrayList<>();
sheetItems.add(item);
sheetItems.add(item1);
sheetItems.add(item2);
DCSDKInitConfig config = new DCSDKInitConfig.Builder()
.setCapsule(true)
.setMenuDefFontSize("16px")
.setMenuDefFontColor("#ff00ff")
.setMenuDefFontWeight("normal")
.setMenuActionSheetItems(sheetItems)
.build();
DCUniMPSDK.getInstance().initialize(this, config, new DCUniMPSDK.IDCUNIMPPreInitCallback() {
@Override
public void onInitFinished(boolean b) {
Log.i("unimp","onInitFinished----"+b);
}
});
}
try {
DCUniMPSDK.getInstance().startApp(this,"__UNI__8DE8DD0");
} catch (Exception e) {
}
步骤一是在宿主app配置好环境,这里我们使用HBuilder生成小程序。
安装HBuilder环境:下载地址:HBuilder。
在HBuilderX中新建uni-app项目,使用v3编译器(默认的),然后选中您的项目,右键->发行->原生App-制作应用wgt包。
打开android原生项目。在主Module模块的assets路径下创建apps/(内置uni小程序的appid)/www 路径。例如:apps/__UNI__04E3A11/www。将之前导出的应用资源包解压释放到apps/__UNI__04E3A11/www路径下。
经过上述两个步骤,已经在app内集成了uni-app小程序!
更多,请看官方文档:官方文档
可在语雀查看此文档。