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

flutter 创建插件

资料:

flutter与原生通信的方式简介 - 简书

完整流程 Flutter 集成 Golang 多语言跨端开发基础案例 - 知乎

https://www.cnblogs.com/webabcd/p/flutter_lib_plugin_plugin_ios.html

步骤1、创建插件

我创建的插件名字是konnect_im_sdk 选择的语言是 java和swift创建。

直接把插件放在项目中 plugins/konnect_im_sdk  如下

然后再项目的pubspec.yaml 引入本地项目插件

konnect_im_sdk:

        path: plugins/konnect_im_sdk

然后再插件的ios项目目录下 创建 Products 将 完整流程 Flutter 集成 Golang 多语言跨端开发基础案例 - 知乎

生成的object-c的ios第三方sdk放进去

然后在  .podspec 文件配置 第三方sdk的路径

s.vendored_frameworks = 'Products/*.framework'

s.static_framework = true

Classes 下的文件中 导入 第三方库 如这样的

现在就可以调用object-c中的方法了

object-c 中声明文件

FOUNDATION_EXPORT BOOL Konnect_im_sdkInitSDK(id<Konnect_im_sdk_callbackOnConnListener> _Nullable listener, NSString* _Nullable operationID, NSString* _Nullable config);
@protocol Konnect_im_sdk_callbackOnConnListener;
@class Konnect_im_sdk_callbackOnConnListener;@protocol Konnect_im_sdk_callbackOnBatchMsgListener <NSObject>
- (void)onRecvNewMessages:(NSString* _Nullable)messageList;
@end@protocol Konnect_im_sdk_callbackOnConnListener <NSObject>
- (void)onConnectFailed:(int32_t)errCode errMsg:(NSString* _Nullable)errMsg;
- (void)onConnectSuccess;
- (void)onConnecting;
- (void)onKickedOffline;
- (void)onUserTokenExpired;
@end@interface Konnect_im_sdk_callbackOnConnListener : NSObject <goSeqRefInterface, Konnect_im_sdk_callbackOnConnListener> {
}
@property(strong, readonly) _Nonnull id _ref;- (nonnull instancetype)initWithRef:(_Nonnull id)ref;
- (void)onConnectFailed:(int32_t)errCode errMsg:(NSString* _Nullable)errMsg;
- (void)onConnectSuccess;
- (void)onConnecting;
- (void)onKickedOffline;
- (void)onUserTokenExpired;
@end

调用

Konnect_im_sdkInitSDK 第一个参数是这样写的

 class MyConnectionListener:  Konnect_im_sdk_callbackOnConnListener {override func onConnectFailed(_ errCode: Int32, errMsg: String?) {print("连接失败,错误码:\(errCode),错误信息:\(errMsg ?? "")")}override func onConnectSuccess() {print("连接成功")}override func onConnecting() {print("正在连接...")}override func onKickedOffline() {print("您已被踢下线")}override func onUserTokenExpired() {print("用户令牌已过期")}
}

运行可以运行 但是报错了 报错同  go_seq_go_to_refnum on objective-c objects is not permitted

https://github.com/golang/go/issues/20254

记 IOS Swift 实现 gomobile interface 抛出异常 go_seq_go_to_refnum on objective-c objects is not permitted

swift 中是不存在多继承的 下面的写法 又报多继承 

 class MyConnectionListener: NSObject, Konnect_im_sdk_callbackOnConnListener {func onConnectFailed(_ errCode: Int32, errMsg: String?) {print("连接失败,错误码:\(errCode),错误信息:\(errMsg ?? "")")}func onConnectSuccess() {print("连接成功")}func onConnecting() {print("正在连接...")}func onKickedOffline() {print("您已被踢下线")}func onUserTokenExpired() {print("用户令牌已过期")}
}

那么 Konnect_im_sdk_callbackOnConnListener是一个类 不是协议 说明声明文件中Konnect_im_sdk_callbackOnConnListener定义有问题 

找到第三方sdk定义的地方 注释掉

Konnect_im_sdk_callbackOnConnListener 不是既是协议 又同时定义为类

注释掉问题解决

总结 

go_seq_go_to_refnum on objective-c objects is not permitted

是 传参类型不对导致的 

安卓项目

修改 build.gradle 配置文件

dependencies {

// libs 是 第三方包的路径

implementation fileTree(dir: 'libs', include: ['*.jar'])

// imsdk 

implementation(name: 'konnect_im_sdk', ext: 'aar')

}

文件中导入第三方包

package chat.konnect.konnect_im_sdk;

相关文章:

flutter 创建插件

资料&#xff1a; flutter与原生通信的方式简介 - 简书 完整流程 Flutter 集成 Golang 多语言跨端开发基础案例 - 知乎 https://www.cnblogs.com/webabcd/p/flutter_lib_plugin_plugin_ios.html 步骤1、创建插件 我创建的插件名字是konnect_im_sdk 选择的语言是 java和swi…...

Framework之旅 -- 后台Recent基础扫盲篇

如果想了解一个事物&#xff0c;是需要展开然后在优化记忆结构的&#xff0c;优化记忆在于后期的个人领悟能力&#xff0c;展开流水账如下&#xff0c;仅为个人记忆笔记&#xff0c;梳理结构有待优化。 TaskDescription&#xff0c;直译看就是task相关的说明了。 看看包含什么…...

全光谱护眼灯有哪些?2023全光谱护眼台灯推荐

随着电子设备的不断普及&#xff0c;手机、平板电脑、显示器、电视机等几乎是家家户户的必备品&#xff0c;也正因为眼睛有那么多时间、那么多机会去盯着屏幕&#xff0c;所以如今近视低龄化现象也越来越严重了。随着科技的不断发展&#xff0c;台灯的发展也越来越多样化&#…...

【JavaEE初阶】 定时器详解与实现

文章目录 &#x1f334;定时器是什么&#x1f38b;Java标准库中的定时器&#x1f332;模拟实现定时器&#x1f6a9;定时器的构成&#x1f4cc;第一步&#xff1a;MyStack类的建立&#x1f4cc;第二步&#xff1a;创建MyTimer类&#x1f4cc;第三步&#xff1a;解决相关问题 &am…...

基于YOLOv8模型和WiderPerson数据集的行人目标检测系统(PyTorch+Pyside6+YOLOv8模型)

摘要&#xff1a;基于YOLOv8模型和WiderPerson数据集的行人目标检测系统可用于日常生活中检测与定位行人目标&#xff0c;利用深度学习算法可实现图片、视频、摄像头等方式的目标检测&#xff0c;另外本系统还支持图片、视频等格式的结果可视化与结果导出。本系统采用YOLOv8目标…...

COSCon'23 开源社文创丨 给开源人一点“color see see”

成都城市限定 “小O在成都”行李箱贴纸 成都限定行李箱贴纸把小O和特色元素相融合 当小O遇到成都 在云端漫步的蓝色小章鱼 掉落到这座热情似火的城市&#xff0c; 结识了大熊猫朋友 学会了四川麻将 吃到了红油串串... 快带着小O来一场自由的旅游吧&#xff01; “你也要尝尝竹子…...

C++前缀和算法的应用:从仓库到码头运输箱子原理、源码、测试用例

本文涉及的基础知识点 C算法&#xff1a;前缀和、前缀乘积、前缀异或的原理、源码及测试用例 包括课程视频 双指针 单调双向队列 题目 你有一辆货运卡车&#xff0c;你需要用这一辆车把一些箱子从仓库运送到码头。这辆卡车每次运输有 箱子数目的限制 和 总重量的限制 。 给你…...

【面试HOT100】链表树

系列综述&#xff1a; &#x1f49e;目的&#xff1a;本系列是个人整理为了秋招面试的&#xff0c;整理期间苛求每个知识点&#xff0c;平衡理解简易度与深入程度。 &#x1f970;来源&#xff1a;材料主要源于LeetCodeHot100进行的&#xff0c;每个知识点的修正和深入主要参考…...

了解 Elasticsearch 自动生成的文档 _id:重复是一个问题吗?

Elasticsearch 中自动生成的文档 ID 当你在未指定 ID 的情况下对文档建立索引时&#xff0c;Elasticsearch 会自动为该文档生成唯一的 ID。 该 ID 是 Base64 编码的 UUID&#xff0c;由多个部分组成&#xff0c;每个部分都有特定的用途。 ID 生成过程针对索引速度和存储效率进…...

量子信息处理器可能能够提供高度压缩的生成对抗学习任务的版本

量子信息处理在生成对抗学习任务中的应用可能性&#xff0c;以及量子信息处理器在表示高维向量和执行线性代数运算上的优势。 举个例子 假设底层数据由M个在N维实数或复数空间中的归一化向量~vj组成&#xff0c;使得数据的&#xff08;归一化&#xff09;协方差矩阵为C (1/M…...

linux-守护进程daemon

linux-守护进程daemon 代码实现 main.c运行结果 代码实现 main.c //pName&#xff1a;程序名 //facility&#xff1a; 守护进程&#xff0c;输出日志类型 302页 #include<signal.h> #include<syslog.h> #include<fcntl.h> static int daemon_proc 0; #defin…...

Kafka Tool(Kafka 可视化工具)安装及使用教程

Kafka Tool&#xff08;Kafka 可视化工具&#xff09;安装及使用教程 Kafka Tool 工具下载 下载地址 http://www.kafkatool.com/download.html 下载界面 不同版本的Kafka对应不同版本的工具&#xff0c;个人使用的是2.11&#xff0c;所以下载的是最新的2.0.8版本&#xff…...

【大揭秘】美团面试题:ConcurrentHashMap和Hashtable有什么区别?一文解析!

正文 亲爱的小伙伴们&#xff0c;大家好&#xff01;我是小米&#xff0c;一个热爱技术分享的程序员&#xff0c;今天我为大家带来了一篇有关美团面试题的热门话题&#xff1a;ConcurrentHashMap 和 Hashtable 有什么区别。这个问题在Java面试中常常被拿来考察对多线程编程的理…...

爬虫基础 JS逆向

爬虫核心 1. HTTP协议与WEB开发 1. 什么是请求头请求体&#xff0c;响应头响应体 2. URL地址包括什么 3. get请求和post请求到底是什么 4. Content-Type是什么 &#xff08;1&#xff09;简介 HTTP协议是Hyper Text Transfer Protocol&#xff08;超文本传输协议&#xff09;…...

nextTick实现原理

答题思路&#xff1a; 此题实际考查vue异步更新策略说出vue是怎么通过异步、批量的方式更新以提高性能的最后把源码中实现说一下 回答范例&#xff1a; vue有个批量、异步更新策略&#xff0c;数据变化时&#xff0c;vue开启一个队列&#xff0c;并缓冲在同一事件循环中发生的…...

CentOS 7中安装ZooKeeper

文章目录 下载解压安装环境变量配置文件启动设置开机自启动开放端口 CentOS 7.6 ZooKeeper 3.5.7 本文介绍了如何在CentOS 7系统中安装单机版的ZooKeeper。 下载 点击官网下载 解压安装 # 解压 tar -xzvf apache-zookeeper-3.5.7-bin.tar.gz sudo mv apache-zookeeper-3.5.…...

推荐《幽游白书》

《幽游白书》是日本漫画家富坚义博于1990年12月3日—1994年7月25日于集英社旗下杂志《周刊少年Jump》上连载的少年漫画作品&#xff0c;全175话&#xff08;含外传一话&#xff09;。现时发行的单行本共计19册&#xff0c;电子版由漫番漫画、哔哩哔哩漫画发布 [1-2] 。 本作最…...

Linux MMC子系统 - 1.eMMC简介

By: Ailson Jack Date: 2023.10.21 个人博客&#xff1a;http://www.only2fire.com/ 本文在我博客的地址是&#xff1a;http://www.only2fire.com/archives/160.html&#xff0c;排版更好&#xff0c;便于学习&#xff0c;也可以去我博客逛逛&#xff0c;兴许有你想要的内容呢。…...

聊聊Android线程优化这件事

一、背景 在日常开发APP的过程中&#xff0c;难免需要使用第二方库和第三方库来帮助开发者快速实现一些功能&#xff0c;提高开发效率。但是&#xff0c;这些库也可能会给线程带来一定的压力&#xff0c;主要表现在以下几个方面&#xff1a; 线程数量增多&#xff1a;一些库可…...

Linux性能优化--实用工具:性能工具助手

8.0 概述 本章介绍一些在Linux系统上可用的实用程序&#xff0c;它们能够加强性能工具的有效性和可用性。实用工具本身不是性能工具&#xff0c;但是当它们与性能工具一起使用时&#xff0c;它们可以帮助完成如下功能&#xff1a;自动执行繁琐的任务、分析性能统计数据&#x…...

ENSP实验避坑指南:搞定三层交换、路由器与Cloud互联的那些‘坑’(附完整配置备份)

ENSP实验避坑指南&#xff1a;三层交换、路由器与Cloud互联的实战排错 1. 实验环境搭建的常见陷阱 在ENSP实验中&#xff0c;环境搭建是第一步&#xff0c;也是最容易出问题的地方。很多初学者在配置Cloud、三层交换机和路由器时&#xff0c;常常因为一些细节问题导致整个实验无…...

决策树与随机森林:从原理到实践的完整指南

决策树与随机森林&#xff1a;从原理到实践的完整指南 【免费下载链接】leetcode LeetCode Solutions: A Record of My Problem Solving Journey.( leetcode题解&#xff0c;记录自己的leetcode解题之路。) 项目地址: https://gitcode.com/gh_mirrors/le/leetcode 决策树…...

Oumuamua-7b-RP步骤详解:Web UI中调整Top-k=30提升角色专注度实操

Oumuamua-7b-RP步骤详解&#xff1a;Web UI中调整Top-k30提升角色专注度实操 1. 项目概述 Oumuamua-7b-RP 是一款专为日语角色扮演对话设计的Web界面大语言模型&#xff0c;基于Mistral-7B架构开发。这个工具特别适合想要体验沉浸式日语角色对话的用户&#xff0c;通过简单的…...

【Android取证实战】小米手机OTG连接疑难排查与数据提取全攻略

1. OTG连接基础与小米手机兼容性解析 第一次用OTG线连接小米手机和U盘时&#xff0c;我也遇到过插上没反应的尴尬情况。后来才发现&#xff0c;这就像用钥匙开门——光有钥匙还不够&#xff0c;得先确认锁孔对不对得上。小米手机从2013年后发布的机型基本都支持OTG功能&#xf…...

2026口碑靠前的备考增强记忆品牌榜单

这份口碑靠前的备考增强记忆品牌榜单是结合成分合规性、市场口碑、权威认证、场景适配性多个维度整理得出&#xff0c;能给备考人群选择脑营养补充产品提供清晰可靠的参考方向。这份口碑靠前的备考增强记忆品牌榜单的评选维度是什么&#xff1f;本次评选围绕三个核心指标筛选&a…...

从气象预警到自动驾驶:聊聊那些你不知道的民用雷达技术(附应用场景解析)

从气象预警到自动驾驶&#xff1a;聊聊那些你不知道的民用雷达技术&#xff08;附应用场景解析&#xff09; 清晨出门前&#xff0c;手机推送的暴雨预警让你带上了雨伞&#xff1b;晚高峰时&#xff0c;导航软件自动避开了拥堵路段&#xff1b;深夜回家&#xff0c;小区道闸通过…...

深度学习 —— 学习率衰减策略

目录 学习率策略 1. 先说结论&#xff1a; 2. 图例&#xff1a;各种学习率下的图 3. 学习率的方式 4. 公式&#xff1a; 4. 神经网络的训练流程 5. 完整代码示例 学习率策略 模型调优的时候可能才会用 1. 先说结论&#xff1a; ① 学习率小&#xff0c; 梯度下降慢 …...

别再手动抄坐标了!用Python一键提取UG模型边界点(附完整代码)

用Python自动化提取UG模型边界坐标的工程实践 在逆向工程、3D打印预处理和CAE分析中&#xff0c;工程师经常需要从三维模型中提取大量边界点坐标。传统手动记录或界面导出方式不仅耗时耗力&#xff0c;还容易引入人为错误。本文将分享一套基于Python的自动化解决方案&#xff0…...

给计算机研究生的选刊指南:如何从CCF A类里挑出最适合你方向的顶会顶刊

计算机研究生选刊实战指南&#xff1a;在CCF A类顶会顶刊中精准定位你的学术赛道 深夜的实验室里&#xff0c;屏幕荧光映照着一张疲惫却执着的面孔——这是无数计算机专业研究生的真实写照。当毕业要求的压力遇上学术发表的焦虑&#xff0c;如何从浩如烟海的CCF A类期刊会议中选…...

免费电视直播软件终极指南:mytv-android 让智能电视焕发新生

免费电视直播软件终极指南&#xff1a;mytv-android 让智能电视焕发新生 【免费下载链接】mytv-android 使用Android原生开发的电视直播软件 项目地址: https://gitcode.com/gh_mirrors/myt/mytv-android 还在为电视直播软件的选择而烦恼吗&#xff1f;想摆脱付费订阅的…...