我正在尝试使用MethodChannel和Kotlin作为我的语言选择,将Android的Zendesk原生SDK移植到Flatter中。
当我在项目中直接使用Kotlin代码时,它就可以工作了
class MainActivity : FlutterActivity() {
// others code are hidden
private fun initialize(call: MethodCall, result: Result) {
val url: String = call.argument("url")!!
val appId: String = call.argument("appId")!!
val clientId: String = call.argument("clientId")!!
Zendesk.INSTANCE.init(this, url, appId, clientId)
val identity = AnonymousIdentity()
Zendesk.INSTANCE.setIdentity(identity)
Support.INSTANCE.init(Zendesk.INSTANCE)
RequestListActivity.builder().show(this)
result.success(true)
}
}
这个指的是活动,我想应用程序已经在里面了,但是当我试图制作独立的插件时,事情有点不同。我需要实现ActivityAware来获取活动(在flatter插件中获取活动引用)。
https://github.com/flutter/flutter/wiki/Experimental:-创建颤振插件
(可选)如果插件需要活动引用,也可以实现ActivityAware。
public class ZendeskPlugin : FlutterPlugin, MethodCallHandler, ActivityAware {
private lateinit var activityBinding: ActivityPluginBinding
// I can get ActivityPluginBinding from this method
override fun onAttachedToActivity(@NonNull binding: ActivityPluginBinding) {
activityBinding = binding
}
private fun initialize(call: MethodCall, result: Result) {
activityBinding?.activity?.let {
val appId: String = call.argument("appId")!!
val clientId: String = call.argument("clientId")!!
val url: String = call.argument("url")!!
Zendesk.INSTANCE.init(it, url, appId, clientId)
val identity = AnonymousIdentity()
Zendesk.INSTANCE.setIdentity(identity)
Support.INSTANCE.init(Zendesk.INSTANCE)
RequestListActivity.builder().show(it)
result.success(true)
return
}
result.error("INITIALIZE_FAILED", "Failed to initialize", null)
}
}
我试图从dart调用initialize,实际上它运行了,但似乎从未调用过附加的toactivity,并且使activityBinding从未初始化,因此代码失败,结果是。错误。
如何在类中获取活动?非常感谢。
问题可能是onAttachedToEngine中setMethodCallHandler的调用
在这里查看更多信息
我使用的是spring boot、kotlin和junit5。我有一个测试类,当我在未触发所有函数之前使用RunWith(SpringRunner::class)@时,但当我删除该类时,它会给lateinit字段带来错误。
我正在尝试添加一个搜索功能,在这个功能中,每当用户输入文本(一个字母接一个字母)时,网站都会向服务器发送一个收集信息的请求。对于这一点,我需要的是我假设的ContextChanged事件?我尝试过使用它,但活动无法启动。 还有我的代码: 你认为哪里不对?yall是否有比“ContextChanged事件”更好的解决方案来获得每次按键和搜索框?
在AndroidManifest中。xml我有一个: 我的广播文件: 我试图运行应用程序后关闭它在后台播放音乐。
正如标题所说,我根本无法让Quartz.net工作。我从NuGet获得了最新版本的Quartz.net(2.2.1)、Common.Logging(2.1.2)、Common.Logging.NLog(2.0.0)和NLog(2.1.0)。触发器没有被触发,而且石英绝对没有记录任何东西。我猜我搞砸了配置。 我的应用程序配置: 有一个作业和一个触发器与之相关: 调度程序将启动,作业和触发器将正确添加
问题内容: 此代码 在我的标记中 这是完整的ajax请求: 即使gif显示为旋转,也永远不会触发警报“开始”。AjaxStop如预期那样被触发。有什么想法吗? 问题答案: 之所以不会被触发,是因为直到ajax请求执行完 之后 (直到被调用时为止) , 您的处理程序才被注册。在被注册后为好,但 之前 的请求完成,所以当它回来就迷上了运行。 要解决此问题,请 在 首次致电 之前 将其移动: 更新:从j
问题内容: 尝试使用vue watch方法,但即使使用,它似乎也不会触发某些对象。 在我的组件中,我收到一个数组作为prop,它们是创建以下表单的字段。我可以构建表单并将其动态绑定到一个名为的对象,并且一切正常(我在vue开发工具中看到,甚至可以按计划提交表单作品) 但是我在尝试观察该动态对象的变化时遇到了问题。 问题答案: 来自文档 由于现代JavaScript的局限性(以及Object.obs