当前位置: 首页> 科技> 能源 > 杭州建设信息网_室内装饰设计效果图_网红推广_产品怎么做市场推广

杭州建设信息网_室内装饰设计效果图_网红推广_产品怎么做市场推广

时间:2025/8/13 7:55:19来源:https://blog.csdn.net/bobbob32/article/details/146101549 浏览次数:0次
杭州建设信息网_室内装饰设计效果图_网红推广_产品怎么做市场推广

直接上代码有注释

服务类

import 'package:flutter/services.dart';class TNativeChannel{static const methChanal = MethodChannel("flutter_native");static const eventChanal = EventChannel("flutter_native_event");//获取ios版本信息static Future<String?> getPlatformVersion()async{try{final String? version = await methChanal.invokeMethod("getPlatformVersion");return version;}on PlatformException catch (e){return "获取失败 ${e.message}";}}static Future<String?> greet(String name)async{final String? response = await methChanal.invokeMethod("greet",{'name':name});return response;}static void listenToEvent(){eventChanal.receiveBroadcastStream().listen((event){print("iOS 发送过来的事件 $event");});}
}

测试代码块

Widget createWidget(){return ListView(children: [ElevatedButton(onPressed: (){TNativeChannel.listenToEvent();},  child: Text("测试openNativeView")),FutureBuilder(future: TNativeChannel.getPlatformVersion(), builder: (context,snop){return Text(snop.data ?? "加载中");}),],);}

ios 端代码 Appdelegate

import Flutter
import UIKit
 class AppDelegate: FlutterAppDelegate {override func application(_ application: UIApplication,didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {GeneratedPluginRegistrant.register(with: self)setUpFlutter1()setFlutter2()setEventChannel()return super.application(application, didFinishLaunchingWithOptions: launchOptions)}func setUpFlutter1(){let flutterVc = window.rootViewController as! FlutterViewController//通道名称必须和flutter端定义的一致let channel = FlutterMethodChannel(name: "flutter_native", binaryMessenger: flutterVc.binaryMessenger)//监听方法channel.setMethodCallHandler { call, result inif call.method == "getPlatformVersion"{let version = UIDevice.current.systemVersionresult("iOS \(version)")}else{result(FlutterMethodNotImplemented)}}}//带参数的调用func setFlutter2(){guard let fluttervc = window.rootViewController as? FlutterViewController else{return}let channel = FlutterMethodChannel(name: "flutter_native", binaryMessenger: fluttervc.binaryMessenger);channel.setMethodCallHandler { call, result inif call.method == "greet"{let args = call.arguments as? [String:Any]let name = args?["name"] as? String ?? "Unknown"result("Hello \(name) from iOS")}else{result(FlutterMethodNotImplemented)}}}func setEventChannel(){let flutterVc = window.rootViewController as! FlutterViewControllerlet eventChannal = FlutterEventChannel(name: "flutter_native_event", binaryMessenger: flutterVc.binaryMessenger);let handler = FEventStreamHandler()eventChannal.setStreamHandler(handler)}
}class FEventStreamHandler:NSObject,FlutterStreamHandler{var eventSink:FlutterEventSink?func onListen(withArguments arguments: Any?, eventSink events:  FlutterEventSink) -> FlutterError? {self.eventSink = events//发送测试数据DispatchQueue.main.asyncAfter(deadline: .now() + 3) {self.eventSink?("NFC 扫描成功");}return nil}func onCancel(withArguments arguments: Any?) -> FlutterError? {eventSink = nilreturn nil}}
关键字:杭州建设信息网_室内装饰设计效果图_网红推广_产品怎么做市场推广

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: