你好,欢迎访问我的博客!登录
当前位置:首页 - MUI - 正文 求知成瘾,却无作品!

MUI调用自定义插件(Android)

2018-01-15MUI攻城狮2200°c
A+ A-

因为项目的需要,需要调用其他jar包中的方法完成一些定制业务,所以仅仅使用html页面是无法完成这项任务的,在MUI官网查资料后得知需要自定义插件完成,因此看着文档完成了开发,这里简单记录一下主要的点:

官方文档地址:Android平台第三方插件开发指导

本人开发环境:eclipse-adt

因为要调用自定义插件,那么HBuilder云打包就与你无缘了,当然可能你还会关注Android离线打包

基于Android离线打包文档描述,我的应用也是基于HBuilder-Hello构建的。

要想正确调用自定义插件,注意下面几点即可:

        第一、java类的编写,要继承io.dcloud.common.DHInterface.StandardFeature类,如:

package com.atnoce;

import java.io.IOException;

import org.json.JSONArray;

import io.dcloud.common.DHInterface.IWebview;
import io.dcloud.common.DHInterface.StandardFeature;
import io.dcloud.common.util.JSUtil;

public class Sso extends StandardFeature{
	
	/**
	 * 这里注意方法名,前台要传入此方法名
	 *
	 */
	public String ssoFunction(IWebview webview, JSONArray array ) {
		// 这里写你的业务逻辑即可
		
		return JSUtil.wrapJsVar("success");
	}
}


第二、注册自定义插件,在文件assets/data/dcloud_properties.xml中注册自定义插件,如:

<!--  在<features>标签中加入即可 -->
<feature name="sso" value="com.atnoce.Sso"></feature>

第三、在assets/apps/这里是你的appid/www/manifest.json 文件permissions中追加插件,如:

  "permissions": {
        "Accelerometer": {
            "description": "访问加速度感应器"
        },
        .....
        .....
        .....
        此处太多我都省略了,重点看我在下面添加的sso
        "sso":{
        	"description": "sso"
        }
    },

第四、在你的html代码中调用这个插件:

geturlButton.addEventListener('tap', function(event){
    //这里我用同步方式调用插件,会返回字符串success
    var rdata = window.plus.bridge.execSync('sso', 'ssoFunction',['a','b']);
    alert(rdata);
});


window.plus.bridge.execSync('sso', 'ssoFunction', ['a','b']);这个方法第一个sso对应dcloud_properties.xml中的sso,第二个参数对应sso实现类的ssoFunction方法,后面的参数以数组方式传入即可。


总体来说说,搞明白了之后回头一看其实很明确,简单明了,就是刚开始的会有点绕,因为使用了自定义插件就不能使用云打包了,因此还需要学会本地打包,好多东西混在一起难免会有弄错的时候。


标签:

发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。


  登录