uni-app 重新制作包括TCP-Socket原生插件(支持Android和IOS) - AimerQAQ的自定义运行基座
uni-app 重新制作包括TCP-Socket原生插件(支持Android和IOS) - AimerQAQ的自定义运行基座
[JS Framework] 当前运行的基座不包含原生插件[Aimer-TCPPlugin],请在manifest中配置该插件,重新制作包括该原生插件的自定义运行基座
总是提示这个,我已经重新做了包
刚试用了下,可以,重新删除插件导入下,试试
更多关于uni-app 重新制作包括TCP-Socket原生插件(支持Android和IOS) - AimerQAQ的自定义运行基座的实战教程也可以访问 https://www.itying.com/category-93-b0.html
ios模拟器上删除了插件还是不行
在 uni-app
中重新制作一个包含 TCP-Socket 原生插件的自定义运行基座,支持 Android 和 iOS,你可以按照以下步骤进行。这个插件允许你在 uni-app
中直接使用 TCP Socket 进行网络通信。
1. 创建 uni-app 项目
首先,创建一个新的 uni-app
项目。
vue create -p dcloudio/uni-preset-vue my-tcp-app
2. 创建原生插件
uni-app
支持通过原生插件的方式扩展功能。你需要为 Android 和 iOS 分别创建原生插件。
2.1 Android 原生插件
-
创建 Android 原生模块
在uni-app
项目的nativeplugins
目录下创建一个新的文件夹,例如TCPPlugin
。 -
编写 Java 代码
在TCPPlugin
文件夹中创建android
目录,并在其中编写 Java 代码实现 TCP Socket 功能。package com.example.tcpplugin; import io.dcloud.common.DHInterface.IWebview; import io.dcloud.common.DHInterface.StandardFeature; import io.dcloud.common.util.JSUtil; public class TCPPlugin extends StandardFeature { public void connect(IWebview pWebview, String[] pArgs) { // 实现 TCP 连接逻辑 String host = pArgs[0]; int port = Integer.parseInt(pArgs[1]); // TODO: 实现 TCP 连接 JSUtil.execCallback(pWebview, "connect", "Connected to " + host + ":" + port, JSUtil.OK, false); } public void send(IWebview pWebview, String[] pArgs) { // 实现发送数据逻辑 String data = pArgs[0]; // TODO: 实现发送数据 JSUtil.execCallback(pWebview, "send", "Sent: " + data, JSUtil.OK, false); } public void disconnect(IWebview pWebview, String[] pArgs) { // 实现断开连接逻辑 // TODO: 实现断开连接 JSUtil.execCallback(pWebview, "disconnect", "Disconnected", JSUtil.OK, false); } }
-
配置插件
在TCPPlugin
目录下创建plugin.json
文件,配置插件信息。{ "name": "TCPPlugin", "id": "TCPPlugin", "version": "1.0.0", "description": "TCP Socket Plugin for Android", "_platforms": ["android"], "android": { "class": "com.example.tcpplugin.TCPPlugin" } }
2.2 iOS 原生插件
-
创建 iOS 原生模块
在TCPPlugin
文件夹中创建ios
目录,并在其中编写 Objective-C 代码实现 TCP Socket 功能。 -
编写 Objective-C 代码
在ios
目录中创建TCPPlugin.m
文件。#import "TCPPlugin.h" #import "JSUtil.h" [@implementation](/user/implementation) TCPPlugin - (void)connect:(NSArray *)arguments { NSString *host = [arguments objectAtIndex:0]; NSNumber *port = [arguments objectAtIndex:1]; // TODO: 实现 TCP 连接 [self callback:@"connect" withResult:@"Connected" andStatus:JSUtilStatusOK]; } - (void)send:(NSArray *)arguments { NSString *data = [arguments objectAtIndex:0]; // TODO: 实现发送数据 [self callback:@"send" withResult:@"Sent" andStatus:JSUtilStatusOK]; } - (void)disconnect:(NSArray *)arguments { // TODO: 实现断开连接 [self callback:@"disconnect" withResult:@"Disconnected" andStatus:JSUtilStatusOK]; } [@end](/user/end)
-
配置插件
在plugin.json
中添加 iOS 配置。{ "name": "TCPPlugin", "id": "TCPPlugin", "version": "1.0.0", "description": "TCP Socket Plugin for iOS", "_platforms": ["ios"], "ios": { "class": "TCPPlugin" } }
3. 在 uni-app 中使用插件
-
引入插件
在pages/index/index.vue
中引入并使用插件。<template> <view> <button @click="connect">Connect</button> <button @click="send">Send</button> <button @click="disconnect">Disconnect</button> </view> </template> <script> export default { methods: { connect() { uni.requireNativePlugin('TCPPlugin').connect(['127.0.0.1', 8080], (res) => { console.log(res); }); }, send() { uni.requireNativePlugin('TCPPlugin').send(['Hello, World!'], (res) => { console.log(res); }); }, disconnect() { uni.requireNativePlugin('TCPPlugin').disconnect([], (res) => { console.log(res); }); } } } </script>