单一产品销售网站建设模板泾川县住房和城乡建设局网站

web/2025/9/28 12:01:22/文章来源:
单一产品销售网站建设模板,泾川县住房和城乡建设局网站,地推一手项目平台,建设企业网站价格Flutter制作插件有两种方式#xff08;以下以android和ios为例#xff09;#xff1a; 目录 1.直接在主工程下的android和ios项目内写插件代码#xff1a;2.创建独立Flutter Plugin项目#xff0c;制作各端插件后#xff0c;再引入项目#xff1a;1. 创建Flutter Plugin…Flutter制作插件有两种方式以下以android和ios为例 目录 1.直接在主工程下的android和ios项目内写插件代码2.创建独立Flutter Plugin项目制作各端插件后再引入项目1. 创建Flutter Plugin2. Flutter Plugin创建完成3. 使用android studio打开主工程example下的android工程编写安卓端插件代码在onMethodCall中编写你自己的方法我这里新增一个test方法在实现类plugin_example_method_channel.dart中添加实现方法在plugin_example.dart中添加调用方法在main.dart中测试方法 4. 使用XCode打开主工程example下的ios工程编写IOS端插件代码执行flutter pub get修改sdk版本号配置flutter sdk路径删除 integration_testxcode打开ios工程并编写代码 发布插件 1.直接在主工程下的android和ios项目内写插件代码 可以使用Android Studio和Xcode分别打开android和ios项目并进行代码编写以及插件的引用这种方式属于直接集成在自己的项目内需自己定义插件名称channel名称以及flutter端和原生端通信的相关方法。 优点 - 接入方式简单 缺点 - 接入过程稍麻烦需要自己定义及编写通信相关代码 - 对于通用插件无法直接提供给其它项目共享 2.创建独立Flutter Plugin项目制作各端插件后再引入项目 1. 创建Flutter Plugin 注意圈着的部分工程类型一定要选择Plugin然后填写包名选择开发语言对于开发语言的选择有几点建议如果你将要制作的插件没有引入第三方sdk或者只引入了一些工具类的库那么根据你熟悉或喜欢的语言随意选择但如果你需要引入第三方sdk特别是ios的sdk使用的是oc编写建议选择java和oc因为目前为止大部分的第三方sdk仍然是以java和oc语言开发为主这样你在参考sdk文档时很多代码可以直接复制会节省不少时间。 2. Flutter Plugin创建完成 创建完成后可以看到目录结构plugin_example就是你的插件住工程将来其它项目引入时就是引入的plugin_example打开lib文件夹有三个文件 plugin_example.dart插件外显名称PluginExample使用插件时new的插件对象plugin_example_method_channel.dart通信通道主要在这里注册channel和调用原生方法plugin_example_platform_interface.dart通信接口plugin_example_method_channel是他的实现类类似java的interface和impl 示例中提供了一个获取当前系统平台版本号的一个方法getPlatformVersion我们按照这个示例编写自己的方法即可而plugin_example下的example工程则是插件使用示例项目可以让你直接运行项目进行插件调试。 最终的插件代码使用示例 import package:plugin_example/plugin_example.dart; ... final _pluginExamplePlugin PluginExample(); ... _pluginExamplePlugin.getPlatformVersion();当前整个项目结构是主工程被包含在了插件工程内部 如果我有多个插件怎么办一个主工程也不可能被多个插件包含啊不用担心插件的引用只需要你配置好引用路径即可至于插件放在哪个位置那得看你自己了一般的为了查看方便以及结构合理性我们可以反过来把插件放入主工程目录下然后修改下引用路径即可关闭AS自行移动文件夹位置然后修改引入路径 这样是不是看着就顺眼多了引入的各个插件一目了然 3. 使用android studio打开主工程example下的android工程编写安卓端插件代码 打开后可能需要等待AS配置安卓环境~ 上面的android即插件工程下面的android则是安卓主工程现在你就可以打开插件主类编写代码了 channel new MethodChannel(flutterPluginBinding.getBinaryMessenger(), plugin_example);channnel的名称默认即可跟你创建插件时填入的插件项目名称一致最好不要修改 在onMethodCall中编写你自己的方法我这里新增一个test方法 else if (call.method.equals(test)) {String param (String) call.arguments;MapString, Object map new HashMap();map.put(code, 0);map.put(msg, Test Success: param);result.success(map); }在plugin_example_platform_interface.dart中添加test方法 FutureMap? test(param) {throw UnimplementedError(test() has not been implemented.);}注意FutureMap?表示此方法返回值类型是Map这个需要根据你自己的返回值类型而定一般用Map最多因为你可能不止返回一个参数 在实现类plugin_example_method_channel.dart中添加实现方法 overrideFutureMap? test(param) async {final map await methodChannel.invokeMethodMap(test,param);return map;}在plugin_example.dart中添加调用方法 FutureMap? test(param) {return PluginExamplePlatform.instance.test(param);}注意当你增加方法后test文件可能会报错你可以根据提示添加方法或直接将test删除即可 在main.dart中测试方法 我这里直接修改了原来获取版本的示例方法 Futurevoid initPlatformState() async {Map? platformVersion await _pluginExamplePlugin.test(123);if (!mounted) return;setState(() {_platformVersion platformVersion.toString();});}运行 与插件方法返回一致成功 else if (call.method.equals(test)) {String param (String) call.arguments;MapString, Object map new HashMap();map.put(code, 0);map.put(msg, Test Success: param);result.success(map); }4. 使用XCode打开主工程example下的ios工程编写IOS端插件代码 我们编写插件时应遵循一个原则即先完成一端的插件编写将所有需要使用的方法编写调试完成再编写另一端。如我先将android端的插件编写完成且flutter端的调用方法也已实现那么在编写ios端代码时就只用考虑实现andorid端编写的方法即可方法编写完成就可直接运行因为flutter的调用逻辑都以实现 我们在用xcode打开ios工程前要确保你的mac中已经安装了flutter和cocoapods环境因为flutter plugin是以pods方式集成的确认没问题后可以先使用mac端AS打开项目并运行这时AS会自动执行pod install并自动配置项目的xcode环境。 执行flutter pub get AS打开项目后先执行flutter pub get 配置flutter环境 报错了意思是项目要求dart版本不能低于3.1.0但我dart版本是3.0.6这是因为如果你调试安卓和ios不在同一台电脑导致的只需将主工程和插件工程下的pubspec.xml的sdk版本调低即可 修改sdk版本号 environment:sdk: 3.0.0 4.0.0再次执行flutter pub get成功但此时我们可能发现还是无法运行 这是因为我们没有给该项目指定flutter sdk路径 配置flutter sdk路径 这种情况经常出现在现在windows环境下调试安卓然后又将项目发送到了mac上调试ios时出现 指定完sdk路径项目即可运行点击运行报错 此时我们将test相关全部删除掉没什么用又经常报错耽误时间如果你需要test那另当别论 删除 integration_test 运行成功但控制台报错找不到方法 找不到方法就对了因为我们还没开始编写ios端插件代码呢此时便可使用xcode打开ios项目了 xcode打开ios工程并编写代码 双击运行 我们在PluginExamplePlugin.m中编写代码实现test方法在handleMethodCall方法中添加 else if ([test isEqualToString:call.method]) {NSString *paramcall.arguments;result({code:0,msg:[NSString stringWithFormat:Test Success:%,param]});} 再次运行 成功 此时一个完整的android和ios双端插件就只做完成了当其他项目使用时可以直接复制引入即可若你想公开此插件给更多人使用那么就可以发布到https://pub.dev/上。 发布插件 终端进入插件根目录执行命令 flutter packages pub publish --dry-run报错意思是homepage没有设置我们可以设置一下(可以设置为你的github项目地址) 另外你也可以为你的插件添加开源协议LICENSE如果不知道怎么写可以复制别人的或者自己在github上创建一个带LICENSE的空项目复制进来然后再次执行命令 已经没问题了可以发布了 flutter packages pub publish --serverhttps://pub.dartlang.orgDo you want to publish plugin_example 0.0.1 to https://pub.dev (y/N)? 输入y 复制链接在浏览器打开登录谷歌账号就行插件相关配置操作… … 此处省略一万字如果你能解决qiang的问题那么当出现Successfully uploaded package时就表示插件已发布成功你就可以进入https://pub.dartlang.org/packages/xxx查看你的插件了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/83321.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

房地产手机网站模板大连金州新区规划建设局网站

安全软件首推-火绒,良心之作。比起360安全卫士、腾讯电脑管家,它无广告,无捆绑,无劫持,无弹窗,还免费。我认为最喜人最贴心的功能属它的‘弹窗拦截’了,可以拦截程序推送烦人的弹窗。五大浓缩亮…

网站更新了网上购物型网站

InfoQ:您的论文“On the Definition of Microservice Bad Smells”涉及非常多的微服务不良做法,但如果要用几个大类别来列举危害性比较大的微服务反模式,您认为会是哪几类?另外,您能再大概分析说明下造成这个几个反模式…

会员系统网站制作做介绍的英文网站

文章目录 效果展示说明利用工具整体思路Puppeteer 使用笔记保持登录状态打开新的页面点击 dialog跳转页面设置页面可见窗口大小寻找元素等待元素出现 整体代码 效果展示 说明 看了看网上很少做这个功能,但是我有这个需求,就抽出时间写了个简单的工具目前…

网站广告招商应该怎么做泉州市亿民建设发展有限公司网站

主要是课堂的补充(yysy,我觉得课堂的教育模式真有够无聊的,PPT、写作业、考试,感受不到知识的魅力。 它告诉我们什么? 空间和时间中的任何模式都可以被看作不同频率的正弦模式的叠加。 为什么重要? 频率分量…

网站模板放哪网站建设平台策划

一、简介 CarWatchdogService 是一个安卓汽车平台中的服务,用于监控和管理车载系统的健康状态,它定期监视系统中的各个组件,以确保它们始终处于活动状态,并在出现故障时进行修复或重启。该服务可以帮助确保平台的稳定性和可靠性,防止应用程序挂起或系统崩溃。 主要功能 系…

网站建站啥意思国际新闻最新10条

【1】 github上创建远程库 注意 ,远程库的名字要与本地库相同 【2】新建github远程库别名origin 【3】 代码提交 git add ./* : 把修改内容添加到暂存区 ; git commit -m msg : 提交暂存区的修改内容到本地库; g…

房地产销售平台网站建设网络服务器配置与管理项目报告

需求 基于用户地理位置,对酒店做简单的排序,非个性化的推荐。酒店评分包含以下: 酒店类型(依赖用户历史订单数据):希望匹配出更加符合用户使用的酒店类型酒店评分:评分高的酒店用户体验感好ge…

南京网站建设培训班建材交易平台

生成n对括号的合法全排列: 给定一整数N,输出N对括号的合法全排列 例: 2 3 ()() (()) ()()() (())() ()(()) ((())) 分析: 很经典的需要迭代来进行实现。 迭代的关键在于找到跳出迭代的条件,以及每次迭代的策略。 出口&…

深圳专业建设网站服务提高百度快速排名

信号量是特殊的队列--无法存储消息的队列,相关的接口函数声明在semphr.h中,通过宏定义替换队列函数实现。 4.1创建二值信号量xSemaphoreCreateBinary() 4.1.1函数原型 queueQUEUE_TYPE_BINARY_SEMAPHORE:一个宏,表示创建队列的…

网站 欣赏互动平台是什么意思

接口测试是软件开发过程中不可或缺的一环,它主要是对软件系统中各个模块之间的接口进行测试,以验证它们是否能够正确地交互和协作。接口测试的目的是确保软件系统的各个部分能够无缝地协同工作,从而提高整个系统的质量和稳定性。 一、什么是接…

网站攻击做网站的技术哪个简单

c#的lamba表达式 之前已经写过一些关于委托还有事件的文章,今天就来介绍一下lambda表达式。 首先定义需要的函数以及委托 { public delegate void DoNothingDelegate(); public delegate void StudyDelegate(int id, string name);private void DoNothing() {Cons…

国外网站空间中信建设有限责任公司深圳中信金融中心项目工期专业招标

文章目录 前端面试02(JS)1、js的组成2、js内置对象3、操作数组的方法4、数据类型的检测方法5、闭包是什么6、前端内存泄漏7、事件委托8、基本数据类型和引用数据类型9、原型链10、JS如何实现继承 🎉写在最后 前端面试02(JS&#x…

互联网站是不是自媒体平台wordpress上传附件到FTP

已经阅读主要根据的技术点:标签为 input 元素定义标注(标记)。label 元素不会向用户呈现任何特殊效果。不过,它为鼠标用户改进了可用性。如果您在 label 元素内点击文本,就会触发此控件。就是说,当用户选择该标签时,浏…

php婚庆网站wordpress做淘宝客可以加入api

在 React Native 中,当用户与文本输入组件(如 TextInput)交互时,系统可能会自动显示键盘。React Native本身并没有直接提供一个“调用键盘”的API,因为键盘的显示和隐藏主要是由系统根据用户的交互行为来管理的。但是&…

内蒙古网站建设信息wordpress官网登录

概述 在人工智能领域,CLIP和DINOv2是计算机视觉领域的两大巨头。CLIP彻底改变了图像理解,而DINOv2为自监督学习带来了新的方法。 在本文中,我们将踏上一段旅程,揭示定义CLIP和DINOv2的优势和微妙之处。我们的目标是发现这些模型…

企业互联网网站定位wordpress php.ini在

1 工效组合展示 2 方案规划设计 3 数字挛生建模 基础建模、动画设计、模型导出 4 软件体系架构 5 Web交互设计 5.1 页面架构 5.2 初始构造 5.3 模型运用 5.4 WS通信 5.5 运行展现 6 服务支撑编码 6.1 整体调度 6.2 WS服务 6.3 C/S通信 7 系统级调试完善

高端服装产品网站建设做图片的软件app

文章目录1. 题目2. 解题2.1 记忆化递归2.2 动态规划1. 题目 给定一个字符串 s1,我们可以把它递归地分割成两个非空子字符串,从而将其表示为二叉树。 下图是字符串 s1 “great” 的一种可能的表示形式。 great/ \gr eat/ \ / \ g r e a…

网站做的最好的网站有哪些学动漫制作需要什么基础

课程目录 章节1:编程课前说明试看 课时1 编程课前说明07:49可试看 章节2:第一章 Python基础-认识环境试看 课时2 1、什么是计算机程序和编程?08:48可试看 课时3 2、为什么学习编程?03:10可试看 课时4 3、Python的安装11:48可试看 课时5 4、用Python编写第…

网站 被攻击主业篡改 被黑了 织梦做的站网站开发视频教程百度云

线程模型 纯内存操作/非阻塞io多路复用/单线程避免多线程频繁上下文切换 基于Reactor模式开发了网络事件处理器:文件事件处理器,单线程的 io多路监听多个socket,据socket事件类型选择对应的处理器,高性能网络通信模型&#xff0c…

单位建设网站硬件公司网站代码

1 伤害性极大(素材来源网络,侵删)▼2 相亲还要看体检报告?(素材来源网络,侵删)▼3 难以启齿的地名(素材来源网络,侵删)▼4 当知道你不回家之后&#xff08…