Flutter 首页返回桌面留在后台

 三个步骤:

安卓注册通信

安卓配置权限

flutter调用

1.
android\app\src\main\kotlin\......\MainActivity.kt
package (******你的包名******)

import android.os.Bundle
import io.flutter.embedding.android.FlutterActivity
import io.flutter.embedding.engine.FlutterEngine
import io.flutter.plugin.common.MethodChannel

class MainActivity: FlutterActivity() {
    private val CHANNEL = "(******一般用你的包名******)/messageChannel"

    override fun configureFlutterEngine(flutterEngine: FlutterEngine) {
        super.configureFlutterEngine(flutterEngine)

        MethodChannel(flutterEngine.dartExecutor.binaryMessenger, CHANNEL).setMethodCallHandler { call, result ->
            if (call.method == "backDesktop") {
                moveTaskToBack(false)
                result.success(null)
            } else {
                result.notImplemented()
            }
        }
    }
}

2. 

    ...其他代码   
     </application>
    <!-- flutter通信加上下面这一行 -->
    <uses-permission android:name="android.permission.INTERNET" />
</manifest>

3.

写在任何地方
class AndroidBackTop {
	//初始化通信管道-设置退出到手机桌面

  static MethodChannel platform =  const MethodChannel('(******一般用你的包名******)/messageChannel/messageChannel');

  static Future<bool> backDeskTop() async {
    try {
      await platform.invokeMethod('backDesktop');
      return Future.value(true);
    } on PlatformException catch (e) {
      print("通信失败${e.message}");
      return Future.value(false);
    }
  }
}
写在首页的最外层
@override
  Widget build(BuildContext context) {
    return GetBuilder<LayoutController>(
      init: LayoutController(),
      id: "layout",
      builder: (_) {
        return WillPopScope(
          onWillPop: () async {
            Logger().i('back');
            AndroidBackTop.backDeskTop(); //设置为返回不退出app
            return false; //一定要return false
          },
          child: _buildView(),
        );
      },
    );
  }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值