nvue下自定义的安卓原生component不能触发回调,如图中的回调,在vue3下均无法触发。在vue2下能正常触发。(原生插件均已正常定义)
- 发布:2022-08-01 22:19
- 更新:2025-12-26 12:24
- 阅读:1183
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: windows11
HBuilderX类型: 正式
HBuilderX版本号: 3.5.3
手机系统: Android
手机系统版本号: Android 6.0
手机厂商: vivo
手机机型: y66l
页面类型: nvue
vue版本: vue3
打包方式: 云端
项目创建方式: HBuilderX
操作步骤:
预期结果:
能正常触发回调
能正常触发回调
实际结果:
触发不了
触发不了
bug描述:
nvue下自定义的安卓原生component不能触发回调,如图中的回调,在vue3下均无法触发。在vue2下能正常触发。(原生插件均已正常定义).
示例:就如官网的这个示例(见图片),在vue3下@onTel无法使用。
最佳回复
你好,请问下在原生插件不动的情况下,在vue3里面如何调用组件的方法,在vue2里面用this.$refs('view').loadImage()是可以的,在vue3里面使用view.value.loadImage()一直提示没有该方法,你那边遇到过这种情况吗,如何解决呢
我也碰到了使用vue3语法时,原生安卓插件发送数据给js,
要保证原生插件里
Map<String, Object> params = new HashMap<>();
Map<String, Object> number = new HashMap<>();
number.put("tel", "18733673932");
//目前uni限制 参数需要放入到"detail"中 否则会被清理
params.put("detail", number);
fireEvent("ontel", params); //ontel这个都是小写的
在nvue页面中 @ontel的ontel和原生插件一样,都要小写
<myText ref="telText" tel="12305" style="width:200;height:60" @ontel="ontel" @click="myTextClick"></myText>
<script setup>
import { ref } from 'vue';
import { onLoad } from '@dcloudio/uni-app'
function ontel(e){
console.log("uniapp onTel(2):"+JSON.stringify(e))
}
},
最后就是uniapp本地打包时要先把页面保存,再去本地打包,导入到Android的assets后,把安装包卸载,重新编译运行就可以了,差一步可能都有问题。
