Open lv823063712 opened 3 years ago
别等了,兄弟
别等了,兄弟
为啥?是这个没了么
别等了,兄弟
为啥?是这个没了么
监听activity的返回然后通过channel传递给flutter侧,让flutter的navigator来处理
或者在dart端,自定义route把返回键的事件冒泡上来,然后再确定是否需要调用flutter boost的pop方法
你的flutter sdk 是什么版本,如果是1.22的话,需要用 origin/v1.22.4-hotfixes 分支
在使用中发现了一个问题,原生Fragment嵌入flutter,flutter内部打开了多个flutter界面,一按手机返回键直接返回到上一个activity了,而不是返回到上一个flutter界面。
操作 :MainAcitvity(Fragment依附的Activity)->Fragment(添加FlutterFragment的Fragment)->FlutterFragment->main.dart->test.dart 点击手机的返回键 预期:返回到main.dart界面 实际:触发了MainActivity处理返回键的问题
嵌入方法
var mFragment = FlutterFragment.NewEngineFragmentBuilder() .url("flutterPage") .params(params) .build<FlutterFragment>() var beginTransaction = childFragmentManager.beginTransaction() beginTransaction.add(R.id.flutterfragmentsa, mFragment).commit() beginTransaction.show(mFragment)
mainActivity 处理返回键的方法
override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean { if (keyCode == KeyEvent.KEYCODE_BACK && event?.repeatCount == 0) { if ((System.currentTimeMillis() - mExitTime) > 2000) { toast(getString(R.string.tips_global_again_exit)) mExitTime = System.currentTimeMillis() } else { UserUtil.removeIsLoadFlutter(mActivity) Utils.deleteFilesByDirectory(File("" + this.cacheDir + "/image_manager_disk_cache")) MyApplication.mContext.exitApp() } return true } return super.onKeyDown(keyCode, event) }
框架中找了半天没有找到处理的方法