uniapp是一个可以将业务逻辑层代码运行到微信小程序、H5、App等多个平台的框架。
最近写了一个uniapp 的 安卓软件 底层用的安卓的代码
Native 不支持鸿蒙
js写法 安卓
1 |
|
苹果
1 | plus.ios.importClass("UIAlertView") |
鸿蒙 不清楚能不能用
1 | import socket from '@ohos.net.socket'; |
uts写法
Android
1 | import java.net.Socket; |
kt
1 | import java.net.Socket |
IOS
1 | import Foundation |
swift
1 | import Foundation |
鸿蒙
1 | // 鸿蒙对应 Socket TCP |
ets
1 | import socket from '@ohos.net.socket'; |
编写一个三端可用的TCP插件 安卓真实可用 其他不确定
utssdk目录下interface.uts
1 | /** |
app-android目录下index.uts
1 | import { |
同目录 TCPClient.kt
1 | package uts.sdk.modules.redTcp |
同目录TCPClientManager.kt
1 | package uts.sdk.modules.redTcp |
同目录TCPServer.kt
1 | package uts.sdk.modules.redTcp |
同目录 TCPServerManager.kt
1 | package uts.sdk.modules.redTcp |
ios
app-ios目录下index.uts
1 | import { |
同目录TCPClient.swift
1 | import DCloudUTSFoundation |
同目录TCPClientManager.swift
1 | import Foundation |
同目录TCPServer.swift
1 | import Foundation |
同目录TCPServerManager.swift
1 | import Foundation |
鸿蒙
app-harmony目录下index.uts
1 | import { |
####同目录TCPClient.ets
1 | package uts.sdk.modules.redTcp |
同目录TCPClientManager.ets
1 | import { TCPClient, TCPResultType, ConnectionOptionsType } from './TCPClient'; |
同目录TCPServer.ets
1 | package uts.sdk.modules.redTcp |
结束语
- 传统 Native 插件(老方案,仍支持)
叫什么:App 原生语言插件(Java/Android、Objective-C/iOS)
支持状态:完全支持、不废弃,老项目、旧插件都能用
开发方式:
Android:Android Studio 写 Kotlin/Java
iOS:Xcode 写 Objective-C/Swift
封装成 .aar / .framework,放到 nativePlugins
前端用 uni.requireNativePlugin() 调用 - UTS 插件(新官方主推)
全称:Uni TypeScript
定位:替代传统 Native 的跨平台原生方案
原理:
一套 .uts 代码
编译时转:
Android → Kotlin
iOS → Swift
鸿蒙 → ArkTS
H5 / 小程序 → JS
真正原生执行,无 JS Bridge、无 WebView、无虚拟机
支持版本:HBuilderX 3.6+ 全面支持
uni-app 现在依然支持传统 Native(Java/ObjC)原生插件,但官方已经全面主推 UTS,
所以建议后续都用 UTS 来写插件。
