类 DCUniMPSDK

uni小程序SDK入口句柄,该类为工厂模式。通过getInstance()获取对象实例!

DCUniMPSDK 对象的方法介绍

DCUniMPSDK.getInstance()

获取SDK实例

参数说明

返回值

类型说明
classDCUniMPSDK对象

DCUniMPSDK.getInstance().initialize(context, config, callback)

sdk初始化

参数说明

参数类型必填说明
ContextContext上下文
configDCSDKInitConfig初始化配置信息类
callbackIDCUNIMPPreInitCallback初始化完毕回调接口 2.6.14+增加

返回值

示例

  1. MenuActionSheetItem item = new MenuActionSheetItem("关于", "gy");
  2. List<MenuActionSheetItem> sheetItems = new ArrayList<>();
  3. sheetItems.add(item);
  4. DCSDKInitConfig config = new DCSDKInitConfig.Builder()
  5. .setCapsule(true)
  6. .setMenuDefFontSize("16px")
  7. .setMenuDefFontColor("#ff00ff")
  8. .setMenuDefFontWeight("normal")
  9. .setMenuActionSheetItems(sheetItems)
  10. .build();
  11. DCUniMPSDK.getInstance().initialize(this, config, new DCUniMPSDK.IDCUNIMPPreInitCallback() {
  12. @Override
  13. public void onInitFinished(boolean isSuccess) {
  14. Log.e("unimp", "onInitFinished-----------"+isSuccess);
  15. }
  16. });

DCUniMPSDK.getInstance().isInitialize()

SDK是否初始化成功

参数说明

返回值

类型说明
booleantrue表示初始化成功 false表示失败

DCUniMPSDK.getInstance().getAppBasePath(context)

获取uni小程序运行路径

参数说明

参数类型必填说明
contextContext上下文

返回值

类型说明
Stringuni小程序运行路径 路径格式: “/xxx/xxx/宿主包名/files/apps/“

Tips

此接口用于宿主管理应用资源或自释放wgt包集成uni小程序。

自释放wgt包集成uni小程序

宿主通过zip解压wgt包资源。主动释放到uni小程序运行路径下。需要自创建文件应用的APPID/www/的目录

路径格式 : “uni小程序运行路径/应用的APPID/www/wgt包中的资源”

示例

  1. "/xxx/xxx/宿主包名/files/apps/__UNI__04E3A11/www/__UNI__04E3A11.wgt包中的资源"

DCUniMPSDK.getInstance().releaseWgtToRunPathFromePath(wgtPath, callBack)

将wgt包中的资源文件释放到uni小程序运行时路径下。

参数说明

参数类型必填说明
wgtPathStringuni小程序应用资源包路径
callbackICallBack拷贝状态回调

wgtPath参数说明

uni小程序应用资源包路径。例如 “xxx/xxx/xxx/UNI04E3A11.wgt”.

wgt文件命名

appid为wgt文件命名!!! 如果.wgt的文件名不是已appid命名。releaseWgtToRunPathFromePath将无法正常释放资源。

Tips:

注意使用releaseWgtToRunPathFromePath方法需要申请存储权限:android.permission.WRITE_EXTERNAL_STORAGE

callback返回参数说明

参数类型说明
codeintcode为1时成功; code为-1时不成功
pArgsObject回调信息 需要判断是否为空

返回值

示例

  1. String wgtPath = context.getExternalCacheDir().getPath()+"/__UNI__04E3A11.wgt";
  2. DCUniMPSDK.getInstance().releaseWgtToRunPathFromePath(wgtPath, new ICallBack() {
  3. @Override
  4. public Object onCallBack(int code, Object pArgs) {
  5. if(code ==1) {//释放wgt完成
  6. try {
  7. DCUniMPSDK.getInstance().startApp(context, "__UNI__04E3A11");
  8. } catch (Exception e) {
  9. e.printStackTrace();
  10. }
  11. } else{//释放wgt失败
  12. Toast.makeText(context, "资源释放失败", Toast.LENGTH_SHORT).show();
  13. }
  14. return null;
  15. }
  16. });

DCUniMPSDK.getInstance().setDefMenuButtonClickCallBack(callBack)

设置menu点击事件回调接口

参数说明

参数类型必填说明
callBackIMenuButtonClickCallBack菜单被点击事件回调

callback返回参数说明

参数类型说明
appidStringuni小程序应用id
idString菜单按钮id

返回值

示例

  1. DCUniMPSDK.getInstance().setDefMenuButtonClickCallBack(new DCUniMPSDK.IMenuButtonClickCallBack() {
  2. @Override
  3. public void onClick(String appid, String id) {
  4. switch (id) {
  5. case "gy":{
  6. Log.e("unimp", "点击了关于" + appid);
  7. break;
  8. }
  9. }
  10. }
  11. });

DCUniMPSDK.getInstance().getCurrentPageUrl()

2.6.6开始支持此功能

获取运行时uni小程序的当前页面url 可用于页面直达等操作的地址。

参数说明

返回值

类型说明
String页面url

DCUniMPSDK.getInstance().startApp(context, appid, splashClass, redirectPath, arguments)

启动uni小程序,确保已初始化完毕再调用!可通过DCUniMPSDK.getInstance().isInitialize()判断。

参数说明

参数类型必填说明
contextContext上下文
appidStringuni小程序应用id
splashClassIDCUniMPAppSplashView自定义splashView接口类
redirectPathStringuni小程序页面直达地址
argumentsJSONObjectuni小程序启动参数 应用启动后通过plus.runtime.arguments取值

redirectPath参数说明

uni小程序页面直达地址。宿主可通过扫码、scheme、网络获取等形式获取相关数据。拼写redirectPath参数,调用startApp实现启动uni小程序直达逻辑。

redirectPath目前由小程序开发者提供。后续SDK将提供分享链接等接口数据。待完善!

格式

redirectPath = pagePath(uni小程序页面路径)+?+query(页面携带参数)

  1. pages/component/scroll-view/scroll-view?a=1&b=2&c=3

返回值

示例

  1. // 启动小程序
  2. try {
  3. DCuniMPSDK.getInstance().startApp(context,"__UNI__04E3A11")
  4. } catch (Exception e) {
  5. e.printStackTrace();
  6. }
  1. // 启动小程序打开指定页面
  2. try {
  3. DCUniMPSDK.getInstance().startApp(context,"__UNI__04E3A11", MySplashView.class, "pages/component/scroll-view/scroll-view?a=1&b=2&c=3");
  4. } catch (Exception e) {
  5. e.printStackTrace();
  6. }
  1. // 启动小程序并传入参数 "Hello uni microprogram"
  2. try {
  3. JSONObject arguments = new JSONObject();
  4. arguments.put("MSG","Hello uni microprogram");
  5. DCUniMPSDK.getInstance().startApp(context, "__UNI__04E3A11", arguments);
  6. } catch (Exception e) {
  7. e.printStackTrace();
  8. }

DCUniMPSDK.getInstance().getRuningAppid()

2.6.3开始支持此功能

获取正在运行的uni小程序appid

参数说明

返回值

类型说明
String正在运行的uni小程序appid 返回null表示未启动应用或应用未初始化完毕。

DCUniMPSDK.getInstance().closeCurrentApp()

2.6.3开始支持此功能

关闭当前正在运行的uni小程序

参数说明

返回值

类型说明
boolean返回true表示关闭成功。false表示失败。

DCUniMPSDK.getInstance().setUniMPOnCloseCallBack(callBack)

2.6.3开始支持此功能

小程序被关闭事件监听

参数说明

参数类型必填说明
callBackIUniMPOnCloseCallBack监听小程序被关闭事件

callback返回参数说明

参数类型说明
appidStringuni小程序应用id

返回值

Tips:

如果您想关闭A小程序后紧接着打开B小程序,在监听小程序被关闭的方法中操作是比较好的时机;

示例:

  1. DCUniMPSDK.getInstance().setUniMPOnCloseCallBack(new DCUniMPSDK.IUniMPOnCloseCallBack() {
  2. @Override
  3. public void onClose(String appid) {
  4. Log.e("unimp", appid+"被关闭了");
  5. }
  6. });

DCUniMPSDK.getInstance().getAppVersionInfo(appid)

2.6.6开始支持此功能

获取已运行过得小程序应用版本信息,内置应用为运行过无法正常获取。返回值需要判空处理!!!

参数说明

参数类型必填说明
appidString小程序appid

返回值

类型说明
JSONObjectuni小程序版本信息 无法获取到指定appid信息会返回null.需要判空!!!

返回值JSONObject格式说明

  1. {
  2. "name": "1.0.0", //versionName
  3. "code": "100" //versionCode
  4. }

示例:

  1. JSONObject jsonObject = DCUniMPSDK.getInstance().getAppVersionInfo("__UNI__04E3A11");
  2. if(jsonObject != null) {
  3. Logger.d("__UNI__04E3A11版本信息为"+jsonObject.toString());
  4. }

DCUniMPSDK.getInstance().sendUniMPEvent(event, data)

2.6.10开始支持此功能

宿主主动触发事件到正在运行的小程序。注意:需要已有小程序在运行才可成功

参数说明

参数类型必填说明
eventString触发事件的event
dataString或JSON事件的携带参数

返回值

类型说明
booleantrue表示事件通知成功。false表示失败。可以log查看原因。

示例:

  1. //JAVA原生层
  2. JSONObject data = new JSONObject();
  3. data.put("sj", "点击了关于");
  4. DCUniMPSDK.getInstance().sendUniMPEvent("gy", data);
  5. //uni小程序JS代码 监听宿主触发给小程序的事件
  6. uni.onNativeEventReceive(function(event, data){
  7. console.log("onNativeEventReceive----="+event);
  8. });

DCUniMPSDK.getInstance().setOnUniMPEventCallBack(callBack)

2.6.10开始支持此功能

设置监听小程序发送给宿主的事件

参数说明

参数类型必填说明
callBackIOnUniMPEventCallBack小程序触发event事件接口

返回值

示例

  1. //小程序js层发送事件给宿主
  2. uni.sendNativeEvent("aa",a, function(e){
  3. console.log("sendNativeEvent-----------回调"+JSON.stringify(e));
  4. });
  5. //JAVA监听小程序发来的事件 通过callback返回参数
  6. DCUniMPSDK.getInstance().setOnUniMPEventCallBack(new DCUniMPSDK.IOnUniMPEventCallBack() {
  7. @Override
  8. public void onUniMPEventReceive(String event, Object data, DCUniMPJSCallback callback) {
  9. callback.invoke( "测试数据");
  10. }
  11. });

类 DCSDKInitConfig

uni小程序SDK初始化信息类。需通过DCSDKInitConfig.Builder构建DCSDKInitConfig对象。

类 DCSDKInitConfig.Builder

DCSDKInitConfig的构建者。通过DCSDKInitConfig.Builder().build()创建DCSDKInitConfig实例。

示例

  1. DCSDKInitConfig config = new DCSDKInitConfig.Builder()
  2. .setCapsule(true)
  3. .setMenuDefFontSize("16px")
  4. .setMenuDefFontColor("#ff00ff")
  5. .setMenuDefFontWeight("normal")
  6. .setMenuActionSheetItems(sheetItems)
  7. .build();

DCSDKInitConfig.Builder 对象的方法介绍

setCapsule(isCapsule)

设置是否使用胶囊按钮

参数说明

参数类型默认值说明
isCapsulebooleantruetrue使用胶囊按钮 false不使用

setMenuDefFontColor(menuDefFontColor)

设置菜单默认按钮文字有颜色

参数说明

参数类型默认值说明
menuDefFontColorString“#000000”字体颜色 可取值:”#RRGGBB” 和 “rgba(R,G,B,A)” 格式字符串,

setMenuDefFontSize(menuDefFontSize)

设置菜单默认按钮字体大小

参数说明

参数类型默认值说明
menuDefFontSizeString“22px”按钮上文字大小 数字加”px”格式字符串

setMenuDefFontWeight(menuDefFontWeight)

设置菜单默认按钮上文字的粗细

参数说明

参数类型默认值说明
menuDefFontWeightString“normal”按钮上文字的粗细 可取值:”normal”标准字体;”bold”加粗字体。

setMenuActionSheetItems(list)

设置默认菜单按钮items

参数说明

参数类型默认值说明
listList默认菜单按钮列表。设置setCapsule为true生效。

类MenuActionSheetItem

构造函数 MenuActionSheetItem(title, id)

参数说明

参数类型默认值说明
titleString默认菜单按钮文字文案
idString默认菜单按钮id

示例

  1. MenuActionSheetItem item = new MenuActionSheetItem("关于", "gy");

接口 IDCUniMPAppSplashView

自定义splashView接口类

IDCUniMPAppSplashView 接口方法介绍

getSplashView(context, appid)

splash创建时会调用此函数

参数说明

参数类型说明
contextContext上下文
Stringappid小程序appid (2.6.6+新增)

返回值

类型说明
View自定义splashView

onCloseSplash(rootView)

splash关闭时会调用此函数

参数说明

参数类型说明
rootViewViewGroupsplashView的父容器

返回值

示例

  1. public class MySplashView implements IDCUniMPAppSplashView {
  2. FrameLayout splashView;
  3. @Override
  4. public View getSplashView(Context context, String appid) {
  5. splashView = new FrameLayout(context);
  6. splashView.setBackgroundColor(Color.BLUE);
  7. return splashView;
  8. }
  9. @Override
  10. public void onCloseSplash(ViewGroup rootView) {
  11. if(rootView != null)
  12. rootView.removeView(splashView);
  13. }
  14. }

DCUniMPJSCallback 2.6.10+新增

小程序js回调接口

invoke(data)

触发js回调(仅一次回调)

参数说明

参数类型说明
dataString或JSON回调信息

返回值

invokeAndKeepAlive(data)

触发js回调(可多次回调)

参数说明

参数类型说明
dataString或JSON回调信息

返回值


发现错误?想参与编辑?在 GitHub 上编辑此页面!