如何使用Flutter和Kotlin在应用程序外部设置小部件?

时间:2019-01-13 09:18:03

标签: android kotlin dart flutter

我需要一种使按钮或容器即使在我关闭应用程序时仍然可见的方法:https://i.stack.imgur.com/GTpOim.jpg。但这根本就不可能发生。因此,我一直在做的事情是在我的应用程序上创建一个平台通道,并尝试使容器和按钮具有本机组件。但是我一直在使用kotlin,对这种编程语言了解不多。我的代码是否可以制作此类小部件?(如果您可以编辑我的完整代码,我将非常感谢。)

完整代码:

颤振:

class FloatingContainer extends StatelessWidget {

  static const platform = const MethodChannel('flutter.App.com.channel');

  @override
  Widget build(BuildContext context) {
    return Container ();
  }
  Future<Null> _showNativeView() async {}

}

科特琳:

package com.example.swipe

import android.os.Bundle

import io.flutter.app.FlutterActivity
import io.flutter.plugins.GeneratedPluginRegistrant
import io.flutter.plugin.common.MethodChannel

class MainActivity() : FlutterActivity() {
    private val CHANNEL = "flutter.App.com.channel"

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        GeneratedPluginRegistrant.registerWith(this)

        MethodChannel(flutterView, CHANNEL).setMethodCallHandler { call, result ->

        }
    }
}

3 个答案:

答案 0 :(得分:0)

您好,在这种情况下,您正在搜索 PlatformChannels 。您可以在以下位置查看文档:{​​{3}},或者如果我希望在我的网站上发表一些关于此的文章:{{3} }(在帖子顶部选择您的语言。)

答案 1 :(得分:0)

这被称为“覆盖其他应用”。

此功能在iOS中不可用,这可能是flutter没有此功能或官方软件包的原因。

但是要在您的应用程序中实现此功能,您可以编写一些PlatformChannels

This权限允许您利用一切。

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
  

允许应用程序使用类型打开窗口   TYPE_SYSTEM_ALERT,显示在所有其他应用程序的顶部。   很少有应用程序应使用此权限;这些窗户是专为   与用户进行系统级交互。

     

恒定值:“ android.permission.SYSTEM_ALERT_WINDOW”

This代码也可以帮助您实现这一目标。

您也可以通过Flipkart-Incubator检出springy-heads库。

答案 2 :(得分:0)

除了不能在IOS上运行的限制外,还有一个名为System Alert Window的插件,功能相同

在所有其他应用上,它都像叠加窗口一样显示Truecaller以及回调事件