uni-app UTS混编在KT原生文件怎么使用UTSAndroid.getUniActivity()
uni-app UTS混编在KT原生文件怎么使用UTSAndroid.getUniActivity() 在KT里怎么替换呢?
你的意思是说 在 kt文件如何使用 UTSAndroid.getUniActivity() 吗?
参考
https://gitcode.net/dcloud/hello-uts/-/blob/master/uni_modules/uts-syntaxcase/utssdk/app-android/kotlinCode.kt
如果是想把 kotlin 源码环境里的 this 关键字指向 UTSAndroid.getUniActivity() 是没有办法实现的。this 在Kotlin中不可以被重写
更多关于uni-app UTS混编在KT原生文件怎么使用UTSAndroid.getUniActivity()的实战教程也可以访问 https://www.itying.com/category-93-b0.html
我想实现的是UVUE页面点击一个按钮传值到UTS插件入口index.uts里然后UTS访问KT原生文件里的方法,然后KT方法得到的结果返回给UTS再传回到UVUE页面,但是KT原生文件又继承了另外一个KT原生文件KT文件里用到了this。
回复 赢无翳: 这是两个问题 第一个 你说的参数传递 应该是不存在什么问题。如果有问题可以提issue 带上复现示例。 第二个 this 依然是我上面的结论,kotlin 里不支持重写this
在Kotlin文件中使用UTSAndroid.getUniActivity()替换this,需要注意以下几点:
- 确保已正确导入UTSAndroid类:
import io.dcloud.uts.UTSAndroid
- 在需要获取Activity上下文的地方直接调用:
val activity = UTSAndroid.getUniActivity()
- 替换原有this为获取到的activity实例:
// 原代码
this.startActivity(intent)
// 修改后
UTSAndroid.getUniActivity().startActivity(intent)
- 注意空安全判断:
UTSAndroid.getUniActivity()?.let { activity ->
// 使用activity进行操作
}
- 如果是作为参数传递,直接传入方法调用结果:
someMethod(UTSAndroid.getUniActivity())