uniapp调用android原生方法

1.编写安卓端代码

public class ElitetycPluginTest extends StandardFeature {

    public void calcMyNameAddNum(IWebview pWebview, JSONArray array){
        //System.out: ["plus141628493886334","这段文字是uniapp传过来的",null]
        String CallBackID = array.optString(0);//        获取回调ID
        String newstring = "我是原生代码返回::"+array.optString(1);//获取参数
        JSUtil.execCallback(pWebview,CallBackID,newstring, JSUtil.OK,false);
    }
}

uniapp调用android原生方法_第1张图片

添加文件内容

在dcloud_properties.xml文件里面加上

		<feature name="elitetyc" value="com.android.simple.ElitetycPluginTest"/>

2.编写前端代码调用方法

2-1编写插件文件plugin.js

! function(root, factory) {
	if (typeof exports == 'object' && typeof module != 'undefined') {
		module.exports = factory()
	} else if (typeof define == 'function' && define.amd) {
		define(factory)
	} else {
		document.addEventListener('plusready', function() {
			// 修改此处为插件命名 
			var moduleName = 'elitetyc';

			root.plus[moduleName] = factory()
		}, false);
	}
}(this, function() {
	//定义自己的方法  
	var _BARCODE = 'elitetyc';
	var plugintest = {
		// 这里定义了一个名叫CalcNameAddNumFunction的方法,传递三个参数,后面两个是回调函数
		CalcNameAddNumFunction: function(num, successCallback, errorCallback) {
			var success = typeof successCallback !== 'function' ? null : function(args) {
					successCallback(args);
				},
				fail = typeof errorCallback !== 'function' ? null : function(code) {
					errorCallback(code);
				};
			var callbackID = plus.bridge.callbackId(success, fail);
			return plus.bridge.exec(_BARCODE, "calcMyNameAddNum", [callbackID, num]);
		}
	};
	return plugintest;
});

uniapp调用android原生方法_第2张图片

2-2前端页面引入plugin.js文件

var elitetyc = require('../../plugin.js');

在export default -data-return处加上

plugins: elitetyc

uniapp调用android原生方法_第3张图片

2-3编写点击事件

			android() {
				this.plugins.CalcNameAddNumFunction(
					"这段文字是uniapp传过来的",
					function(result) {
						uni.showToast({
							title: JSON.stringify(result),
							icon: 'none',
							duration: 5000
						});
					},
					function(result) {
						uni.showToast({
							title: result,
							icon: "none",
							duration: 5000
						});
					}
				);
			},

uniapp调用android原生方法_第4张图片

4.将uniapp以本地打包的方式进行导出

uniapp调用android原生方法_第5张图片

选择生成本地app打包资源

打包后的文件夹
uniapp调用android原生方法_第6张图片

导入到安卓工程里面

uniapp调用android原生方法_第7张图片

你可能感兴趣的:(前端,uni-app,安卓)