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

做网站应该会什么问题泰安百度网站建设

做网站应该会什么问题,泰安百度网站建设,公司如何在网上推广,贵州省住房和城乡建设厅网站官网在混合开发中避免不了通信,简单记录一下,Flutter iOS工程与Flutter 之间相互通信。 Flutter中通过Platform Channel实现Flutter和原生端的数据传递,是怎么进行数据通信,以及怎么配置,下面一一进行详解。 FlutterMetho…

在混合开发中避免不了通信,简单记录一下,Flutter iOS工程与Flutter 之间相互通信。
Flutter中通过Platform Channel实现Flutter和原生端的数据传递,是怎么进行数据通信,以及怎么配置,下面一一进行详解。

  • FlutterMethodChannel 使用
    注:iOS 端简单设置
class HYFlutterNavChannel: NSObject { public static let share = HYFlutterNavChannel()// 声明 FlutterMethodChannelvar channel: FlutterMethodChannel// lazy var map: [String: (_ call: FlutterMethodCall, _ result: FlutterResult) -> Void] = {return ["pop":pop,]}()override init() {// name 一定需要和  flutter里面约定好,保持一致channel = FlutterMethodChannel.init(name: "Flutter/navigation", binaryMessenger: FlutterBoost.instance().engine().binaryMessenger)super.init()channel.setMethodCallHandler {[weak self] (call, reslt) inlet method = self?.map[call.method]method?(call, reslt)}} public static func start() {_ = HYFlutterNavChannel.share}// popfunc pop(call: FlutterMethodCall, result: FlutterResult)  {UINavigationController.topNavigationController()?.navigationController?.popViewController(animated: true)}}

在iOS 注册Flutter 引擎的地方使用

// 案例是放到 AppDelegate中
[FlutterBoost.instance setup:application delegate:delegate callback:^(FlutterEngine *engine) {NSLog(@"FlutterBoost 开始操作");// 使用 MethodChannel[HYFlutterNavChannel start];[HYFlutterCommonChannel start];}];

上述就把iOS端,使用FlutterMethodChannel简单进行通信集成完毕。

  • Flutter 端 MethodChannel 集成与使用
import 'dart:collection';import 'package:flutter/services.dart';class NavigationChannel {// 这里需要和原生保存一致  "Flutter/navigation"// ignore: constant_identifier_namesstatic const MethodChannel channel_navigation =MethodChannel("Flutter/navigation");// ignore: non_constant_identifier_namesstatic final channel_navigation_handlers =HashMap<String, MethodCallHandler>();NavigationChannel() {init();}void init() {channel_navigation_handlers["nativeQuitFlutter"] = nativeQuitFlutter;channel_navigation.setMethodCallHandler((call) async {channel_navigation_handlers[call.method]?.call(call);});}//  native 提供的功能方法Future<void> finishHostPage() async {return channel_navigation.invokeMethod("pop");}Future<void> nativeQuitFlutter(MethodCall call) async {}// -------------flutter提供的功能-----------------void registerInitRoute(MethodCallHandler handler) {channel_navigation_handlers["initRoute"] = handler;}
}typedef MethodCallHandler = Future<dynamic> Function(MethodCall call)?;

以上 Flutter MethodChannel 集成完毕

  • Flutter 使用MethodChannel
    这里使用了一个类进行统一管理 通信类
import 'package:my_flutter/common_channel.dart';import 'navigation_channel.dart';class Channels {// ignore: empty_constructor_bodiesChannels._() {}// 注册 Channelstatic final navigation = NavigationChannel();static final common = CommonChannel();
}

在Flutter使用的地方进行调用

Channels.navigation.finishHostPage();

上述完成,flutter就可以调用原生里面注册的pop方法了。

http://www.15wanjia.com/news/169650.html

相关文章:

  • 中国动漫影视培训网站源码网站建设公司
  • 做网站的 书籍asp网站建设案例
  • 网站流量报表个人网站内容如何填写
  • 如何用织梦搭建网站网络营销典型案例有哪些
  • asp.net网站怎么做ydg wordpress theme
  • 网站建设推广入什么费用用爱奇艺会员做视频网站违法吗
  • 网站制作建站Python做网站 性能
  • 上海建设银行网站转账记录建设网站八大员成绩查询
  • 商城类网站价格桦南县建设局网站
  • 中企动力做的网站价格区间网页微信无法登录
  • 棠下手机网站建设报价第二季企业网站开发php中文网
  • 海尔网站建设推广重庆公司印章代码查询
  • 100款禁用网站婚纱网站建设 最开始
  • 网站首页布局中国建设银行网站保定五四路
  • 上海袜网站建设网站制作注意事项
  • 网站域名和服务器到期网站开发实施计划
  • 上海找工作网站军事前沿最新消息
  • 如何做网站内容构架图网站 哪些服务器
  • 设置字体颜色的网站网页不能下载的wordpress
  • 环保部建设项目影响登记网站网易云wordpress
  • 哈尔滨网站建设报价图片网站 建站
  • 网站系统目前运行稳定深圳龙岗建站公司
  • 网站建设微信端网站开发首选
  • 广州网络建站wordpress编辑器内容
  • 开平网站设计wordpress 调用百度前端公众库
  • 泰安网站建设 九微米国外公司在国内建网站
  • 汕头建站模板系统建设工程质量安全监督站官方网站
  • 眉山网站设计网站 优化 关键字
  • asp科技公司网站源码简书wordpress
  • 手机端网站设计制作案例一个完整的项目计划书