DCloud_Android_ST
DCloud_Android_ST
  • 发布:2020-02-25 10:15
  • 更新:2021-11-12 20:43
  • 阅读:16437

Android uni小程序API参考手册

分类:uni-app

此文章以停止更新!请移步Android uni小程序API参考手册

如果你不清楚uniMPSDK是什么? 请先阅读uniMPSDK 概述

类 DCUniMPSDK

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

DCUniMPSDK 对象的方法介绍

DCUniMPSDK.getInstance()

获取SDK实例

参数说明

返回值

类型 说明
class DCUniMPSDK对象

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

sdk初始化

参数说明

参数 类型 必填 说明
Context Context 上下文
config DCSDKInitConfig 初始化配置信息类
callback IDCUNIMPPreInitCallback 初始化完毕回调接口 2.6.14+增加

返回值

示例

MenuActionSheetItem item = new MenuActionSheetItem("关于", "gy");  
List<MenuActionSheetItem> sheetItems = new ArrayList<>();  
sheetItems.add(item);  
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 isSuccess) {  
        Log.e("unimp", "onInitFinished-----------"+isSuccess);  
    }  
});

DCUniMPSDK.getInstance().isInitialize()

SDK是否初始化成功

参数说明

返回值

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

DCUniMPSDK.getInstance().getAppBasePath(context)

获取uni小程序运行路径

参数说明

参数 类型 必填 说明
context Context 上下文

返回值

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

Tips

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

自释放wgt包集成uni小程序

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

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

示例

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

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

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

参数说明

参数 类型 必填 说明
wgtPath String uni小程序应用资源包路径
callback ICallBack 拷贝状态回调

wgtPath参数说明

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

wgt文件命名

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

Tips:

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

callback返回参数说明

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

返回值

示例

String wgtPath = context.getExternalCacheDir().getPath()+"/__UNI__04E3A11.wgt";  
DCUniMPSDK.getInstance().releaseWgtToRunPathFromePath(wgtPath, new ICallBack() {  
    @Override  
    public Object onCallBack(int code, Object pArgs) {  
        if(code ==1) {//释放wgt完成  
            try {  
                DCUniMPSDK.getInstance().startApp(context, "__UNI__04E3A11");  
            } catch (Exception e) {  
                e.printStackTrace();  
            }  
        } else{//释放wgt失败  
            Toast.makeText(context, "资源释放失败", Toast.LENGTH_SHORT).show();  
        }  
        return null;  
    }  
});

DCUniMPSDK.getInstance().setDefMenuButtonClickCallBack(callBack)

设置menu点击事件回调接口

参数说明

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

callback返回参数说明

参数 类型 说明
appid String uni小程序应用id
id String 菜单按钮id

返回值

示例

DCUniMPSDK.getInstance().setDefMenuButtonClickCallBack(new DCUniMPSDK.IMenuButtonClickCallBack() {  
    @Override  
    public void onClick(String appid, String id) {  
        switch (id) {  
            case "gy":{  
                Log.e("unimp", "点击了关于" + appid);  
                break;  
            }  
        }  
    }  
});

DCUniMPSDK.getInstance().getCurrentPageUrl()

2.6.6开始支持此功能

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

参数说明

返回值

类型 说明
String 页面url

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

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

参数说明

参数 类型 必填 说明
context Context 上下文
appid String uni小程序应用id
splashClass IDCUniMPAppSplashView 自定义splashView接口类
redirectPath String uni小程序页面直达地址
arguments JSONObject uni小程序启动参数 应用启动后通过plus.runtime.arguments取值

redirectPath参数说明

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

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

格式

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

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

返回值

示例

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

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开始支持此功能

小程序被关闭事件监听

参数说明

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

callback返回参数说明

参数 类型 说明
appid String uni小程序应用id

返回值

示例:

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

DCUniMPSDK.getInstance().getAppVersionInfo(appid)

2.6.6开始支持此功能

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

参数说明

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

返回值

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

返回值JSONObject格式说明

{  
"name": "1.0.0", //versionName  
"code": "100" //versionCode  
}

示例:

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

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

2.6.10开始支持此功能

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

参数说明

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

返回值

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

示例:

//JAVA原生层  
JSONObject data = new JSONObject();  
data.put("sj", "点击了关于");  
DCUniMPSDK.getInstance().sendUniMPEvent("gy", data);  

//uni小程序JS代码 监听宿主触发给小程序的事件  
uni.onNativeEventReceive(function(event, data){  
    console.log("onNativeEventReceive----="+event);  
});

DCUniMPSDK.getInstance().setOnUniMPEventCallBack(callBack)

2.6.10开始支持此功能

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

参数说明

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

返回值

示例

//小程序js层发送事件给宿主  
uni.sendNativeEvent("aa",a, function(e){  
    console.log("sendNativeEvent-----------回调"+JSON.stringify(e));  
});  

//JAVA监听小程序发来的事件 通过callback返回参数  
DCUniMPSDK.getInstance().setOnUniMPEventCallBack(new DCUniMPSDK.IOnUniMPEventCallBack() {  
    @Override  
    public void onUniMPEventReceive(String event, Object data, DCUniMPJSCallback callback) {  
        callback.invoke( "测试数据");  
    }  
});

类 DCSDKInitConfig

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

类 DCSDKInitConfig.Builder

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

示例

DCSDKInitConfig config = new DCSDKInitConfig.Builder()  
                .setCapsule(true)  
                .setMenuDefFontSize("16px")  
                .setMenuDefFontColor("#ff00ff")  
                .setMenuDefFontWeight("normal")  
                .setMenuActionSheetItems(sheetItems)  
                .build();

DCSDKInitConfig.Builder 对象的方法介绍

setCapsule(isCapsule)

设置是否使用胶囊按钮

参数说明

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

setMenuDefFontColor(menuDefFontColor)

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

参数说明

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

setMenuDefFontSize(menuDefFontSize)

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

参数说明

参数 类型 默认值 说明
menuDefFontSize String "22px" 按钮上文字大小 数字加"px"格式字符串

setMenuDefFontWeight(menuDefFontWeight)

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

参数说明

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

setMenuActionSheetItems(list)

设置默认菜单按钮items

参数说明

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

类MenuActionSheetItem

构造函数 MenuActionSheetItem(title, id)

参数说明

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

示例

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

接口 IDCUniMPAppSplashView

自定义splashView接口类

IDCUniMPAppSplashView 接口方法介绍

getSplashView(context, appid)

splash创建时会调用此函数

参数说明

参数 类型 说明
context Context 上下文
String appid 小程序appid (2.6.6+新增)

返回值

类型 说明
View 自定义splashView

onCloseSplash(rootView)

splash关闭时会调用此函数

参数说明

参数 类型 说明
rootView ViewGroup splashView的父容器

返回值

示例

public class MySplashView implements IDCUniMPAppSplashView {  
    FrameLayout splashView;  
    @Override  
    public View getSplashView(Context context, String appid) {  
        splashView = new FrameLayout(context);  
        splashView.setBackgroundColor(Color.BLUE);  
        return splashView;  
    }  

    @Override  
    public void onCloseSplash(ViewGroup rootView) {  
        if(rootView != null)  
            rootView.removeView(splashView);  
    }  
}

DCUniMPJSCallback 2.6.10+新增

小程序js回调接口

invoke(data)

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

参数说明

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

返回值

invokeAndKeepAlive(data)

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

参数说明

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

返回值

1 关注 分享
machi的奶茶

要回复文章请先登录注册

1***@163.com

1***@163.com

回复 TBaymax :
解决了吗?我也是接收不到消息
2021-11-12 20:43
TBaymax

TBaymax

在App.vue中设置onNativeEventReceive接收不到宿主的消息
2021-10-06 17:35
6***@qq.com

6***@qq.com

回复 3***@qq.com :
uni-app 需要重启才能生效
2021-07-06 14:40
3***@qq.com

3***@qq.com

DCUniMPSDK.getInstance().startApp(context, "__UNI__04E3A11", arguments);
小程序端怎么接收的啊‘
文档写的var arguments = plus.runtime.arguments;’怎么不对呀
2020-06-12 14:45
machi的奶茶

machi的奶茶

文章好评,正好使用了原生使用uni小程序SDK功能,先占个位!
2020-05-08 16:15