当uniapp 现有功能无法满足实际应用需要的时候,就可以通过调用原生代码来满足需求。
如何将uniapp代码放入原生框架中,可以参考官网说明:原生开发者支持
uniapp:代码
<template>
<view>
<button type="primary" @click="toNative">调用原生方法</button>
</view>
</template>
<script>
var testModule = uni.requireNativePlugin("TestModule")
const modal = uni.requireNativePlugin('modal');
export default {
data() {
return {
}
},
methods: {
toNative(){
// 调用异步方法testAsyncNative
nativeModule.testAsyncNative({
'name': 'unimp',
'age': 1
},
(ret) => {
modal.toast({
message: ret,
duration: 1.5
});
})
}
}
}
</script>
<style>
</style>
android原生代码:
public class NativeModule extends UniModule { @UniJSMethod(uiThread = true) // 异步调用 public void testAsyncNative(JSONObject options, UniJSCallback callback) { Log.e("NativeModule", "testAsyncNative--"+options); if(callback != null) { JSONObject data = new JSONObject(); data.put("code", "success"); callback.invoke(data); } } }