当前位置: 首页 > news >正文

公司做网站的费属于广告费么国内做网站大公司

公司做网站的费属于广告费么,国内做网站大公司,合肥网站制作报,辽源网站建设通信原理 我们分几种场景来介绍Flutter和Native之间的通信。 Native发送数据给FlutterFlutter发送数据给NativeFlutter发送数据给Native#xff0c;然后Native回传数据给Flutter Flutter与Native通信机制 在讲解Flutter与Native之间是如何传递数据之前#xff0c;我们先了…通信原理 我们分几种场景来介绍Flutter和Native之间的通信。 Native发送数据给FlutterFlutter发送数据给NativeFlutter发送数据给Native然后Native回传数据给Flutter Flutter与Native通信机制 在讲解Flutter与Native之间是如何传递数据之前我们先了解下Flutter与Native的通信机制Flutter和Native的通信是通过Channel来完成的。 消息使用Channel(平台通道)在客户端(UI)和主机(平台)之间传递如下图所示 Channel所支持的数据类型对照表 Flutter定义了三种不同类型的Channel BasicMessageChannel用于传递字符串和半结构化的信息持续通信收到消息后可以回复此次消息如Native将遍历到的文件信息陆续传递到Flutter在比如Flutter将从服务端陆陆续续获取到信息交给Native加工Native处理完返回等MessageChannel用于传递方法调用一次性通信如Flutter调用Native拍照EventChannel用于数据流的通信持续通信通常用于Native向Flutter的通信如手机电量变化网络连接变化等 这三种类型的Channel都是全双工通信即ABFlutter可以主动发送消息给Native端并且Native接收到消息后可以做出回应同样Native端可以主动发送消息给Flutter端Flutter端接收到数据后返回给Native。 通信原理 无论是哪一种类型的Channel它能和Flutter进行通信主要是借助BinaryMessenger来实现的。三种类型的Channel在Flutter侧都有对应的实现。 实践 flutter主动发送数据给nativenative接受到消息后回信给flutter Android端 class MainActivity : FlutterActivity() {override fun configureFlutterEngine(flutterEngine: FlutterEngine) {super.configureFlutterEngine(flutterEngine)val channel MethodChannel(flutterEngine.dartExecutor.binaryMessenger, HiFlutterBridge)//HiFlutterBridge需要和flutter端的对应channel.setMethodCallHandler { call, result -Log.e(HiFlutterBridge, argus is ${call.arguments})if (call.method goToNative) {val data Hello from native!result.success(data)} else {result.notImplemented()}}}Flutter端 import package:flutter/cupertino.dart; import package:flutter/services.dart;class HiFlutterBridge {static HiFlutterBridge _instance HiFlutterBridge._();final MethodChannel _bridge const MethodChannel(HiFlutterBridge);//需要和原生端的MethodChannel方法的第二个参数一致var _listener {};HiFlutterBridge._() {_bridge.setMethodCallHandler((MethodCall call) {String method call.method;if (_listener[method] ! null) {return _listener[method](call);}return Future(() null);});}static HiFlutterBridge getInstance() {return _instance;}register(String method, Function(MethodCall) callBack) {_listener[method] callBack;}unRegister(String method) {_listener.remove(method);}goToNative(Map params) async {String result await _bridge.invokeMethod(goToNative, params);debugPrint(HiFlutterBridge result is $result);}MethodChannel bridge() {return _bridge;} } overrideWidget build(BuildContext context) {// TODO: implement buildreturn Scaffold(resizeToAvoidBottomInset: false, // 设置为false以避免在打开软键盘时widget被顶上去body: HideKeyboard(child: Stack(children: Widget[Align(alignment: Alignment.center,child: ElevatedButton(onPressed: () {//flutter向native端通信HiFlutterBridge.getInstance().goToNative({test: hello world})},// style: ElevatedButton.styleFrom(// minimumSize: const Size(100, 50),// maximumSize: const Size(100, 50),// shape:// RoundedRectangleBorder(borderRadius: BorderRadius.circular(30))),child: const Text(login),),)],)));}native主动发送数据给flutterflutter接受到消息后回信给native Android端 class MainActivity : FlutterActivity() {override fun onResume() {super.onResume()sendDataToFlutter()}private fun sendDataToFlutter() {val channel MethodChannel(flutterEngine!!.dartExecutor.binaryMessenger, test)channel.invokeMethod( sendData , Hello Flutter, object : MethodChannel.Result {override fun success(o: Any?) {Log.d(Native, Received back: o.toString())}override fun error(s: String, s1: String?, o: Any?) {Log.e(Native, Error: $s1)}override fun notImplemented() {}})} }Flutter端 import package:flutter/cupertino.dart; import package:flutter/services.dart;class HiFlutterBridge {static HiFlutterBridge _instance HiFlutterBridge._();final MethodChannel _bridge const MethodChannel(test);var _listener {};HiFlutterBridge._() {_bridge.setMethodCallHandler((MethodCall call) async{debugPrint(test ${call});return flutter native;String method call.method;if (_listener[method] ! null) {return _listener[method](call);}return Future(() null);});}static HiFlutterBridge getInstance() {return _instance;}register(String method, Function(MethodCall) callBack) {_listener[method] callBack;}unRegister(String method) {_listener.remove(method);}goToNative(Map params) async {String result await _bridge.invokeMethod(goToNative, params);debugPrint(HiFlutterBridge result is $result);}MethodChannel bridge() {return _bridge;} } overridevoid initState() {// TODO: implement initStatesuper.initState();HiFlutterBridge.getInstance();}运行结果 I/flutter (27181): test MethodCall( sendData , Hello Flutter) D/Native (27181): Received back: flutter native
http://wiki.neutronadmin.com/news/48999/

相关文章:

  • 做网上竞猜网站合法吗金网科技
  • 残联网站建设工业和信息化部五系网站建设
  • 网站建设类大连网站制作咨询
  • 设计好的集团网站建设多少钱太原 招聘 网站建设 技术经理
  • 北海哪家做网站批量修改wordpress文章分类目录
  • 国内哪个网站是做电子元器件的专门 做鞋子团购的网站
  • 个人网站域名取名天河做网站平台
  • 建立网站流程图wordpress 音乐
  • 网站开发所需要的的环境网站开发竞争性谈判
  • 素材网站个人做的做建网站的工作一年赚几百万
  • 旅游订票网站开发公司商标设计
  • 蓝色科技企业网站模板android开发基础教程
  • 网站建站建设多少钱软件实施工资一般多少
  • 网站轮播图能用什么软件做dw做网站怎么排版
  • 2018年怎么做网站排名网站推广的优点
  • 网站备案信息查询申请表学校网站模板大全
  • 石狮网站设计公司中国工信部网站备案
  • 工具刷网站排刷排名软件百度怎么把自己网站展现在百度
  • 用xp做网站是否先搭建iiswordpress对php版本要求
  • 福田做商城网站建设找哪家公司好合肥高端网站
  • 网站托管就业wordpress图片无法读取
  • 网站标题的优化知名企业网站人才招聘情况如何
  • 网站建设与管理收获旅游搭建网站
  • 青岛专业制作网站北京手机网站设计
  • 手机系统seo推广编辑
  • 招聘网站上找在家做万网 速成网站
  • 钓鱼网站怎么制作htmlWordPress文章投票
  • 建网站要备案深圳坪山高铁站
  • 中国最大免费wap网站diy小程序开发平台
  • 江镇做包子网站合肥市城乡城乡建设局网站