【01】完整开发即构美颜sdk的uni官方uts插件—让所有开发者可以直接使用即构美颜sdk的能力-优雅草卓伊凡

简介: 【01】完整开发即构美颜sdk的uni官方uts插件—让所有开发者可以直接使用即构美颜sdk的能力-优雅草卓伊凡

【01】完整开发即构美颜sdk的uni官方uts插件—让所有开发者可以直接使用即构美颜sdk的能力-优雅草卓伊凡

背景

即构美颜sdk不支持uniapp,我们需要制作uni原生插件,安卓和IOS双端都需要

章节内容

【01】初步建立即构美颜SDK的uniapp-uts插件-初步规划目录-初步熟悉即构美颜sdk的构造

实战开始

插件基础知识

根据官方说明:

如果您是插件作者,可以了解更多uts插件和uni原生语言插件对插件作者的区别。详见

更新:“App原生语言插件”已停止维护,插件市场不再受理新增App原生插件。请插件开发者都使用uts插件。

扩展知识:

  • uni-app x中,是uts来调用uts插件。(HBuilderX 3.9支持)

也就是一个uts插件,可以同时支持uni-app和uni-app x。

为了兼容全端,uts插件可以分目录写所有平台代码,也就是一个uts插件除了支持App的扩展,还可以支持web、小程序。

比如这个uts插件,电量,其源码在https://gitcode.net/dcloud/uni-api/-/tree/master/uni_modules/uni-getbatteryinfo,内部有多个目录(app-android、app-ios、web、mp-weixin、mp-alipay…),在非App目录也可以写js。

这个电量插件在uni-app和uni-app x中均可以使用。

uts插件分api和组件。这和uni-app的组件、api的概念是一样的。

  • api插件:uts插件扩展了api能力,在script里调用
  • 组件插件:uts插件扩展了界面组件,在template里调用。它是要内嵌在页面中。

api插件也可以操作界面,但更多是独立的全屏窗口或弹出窗口。而不能嵌入在template中。

比如lottie动画的uts插件,就是一个组件插件。https://ext.dcloud.net.cn/plugin?id=10674,其源码在https://gitcode.net/dcloud/uni-component/-/tree/master/uni_modules/uni-animation-view

创建默认实例

因此我们建立:

创建默认uts插件实例

这里要选择 hello uts 这是官方默认给的uts插件实例

右键 uni_modules 创建插件

选择uts 插件,输入插件名字,(保持唯一性)

配置package.json

打开 package.json 描述基本配置

"id": "作者ID-插件英文名称", // 必填,插件ID,格式为:'作者ID-插件英文名称',例如:'xx-yy',其中作者ID和插件名称只能包含英文、数字,作者ID不能使用'DCloud'、'uni'等关键字
        "displayName": "插件显示名称", // 必填,用于展示在插件市场的显示名称
        "version": "1.0.0", // 必填,插件版本
        "description": "插件描述", // 必填,插件描述
        "keywords": [], // 必填,插件标签关键词,最多5个
        "repository": "github:user/repo", // 仓库地址
        "engines": { // HBuilderX/cli 最低兼容版本
            "HBuilderX": "^3.1.0"

修改为我们自己的信息:

"id": "youyacao-zegomeiyan",
    "name": "zego-meiyan",
    "displayName": "即构美颜sdk插件-优雅草制",
    "version": "1.0.0",
    "description": "即构美颜sdk插件",
    "repository": "https://gitee.com/youyacao/zegomeiyanuts",
    "keywords": [
        "美颜sdk",
        "即构美颜",
          "美颜美妆",
          "APP美颜"
    ],

uts插件的目录

┌─common                          // 当前插件内可跨端公用的uts代码。uts文件仅支持放在utssdk目录或common目录。
├─static                          // 静态资源
├─utssdk
│    ├─app-android                 //Android平台目录
│    │    ├─assets                  //Android原生assets资源目录,可选
│    │    ├─libs                    //Android原生库目录,可选
│    │    ├─res                     //Android原生res资源目录,可选
│    │    ├─AndroidManifest.xml     //Android原生应用清单文件,可选
│    │    ├─config.json             //Android原生配置文件
│    │    ├─hybrid.kt               //Android混编的kt文件
│    │    └─index.uts               //Android原生插件能力实现
│    ├─app-ios                     //iOS平台目录
│    │    ├─Frameworks              //iOS原生依赖的第三方 framework 依赖库存放目录,可选
│    │    ├─Libs                    //iOS原生依赖的第三方 .a 依赖库存放目录,可选
│    │    ├─Resources               //iOS原生所依赖的资源文件存放目录,可选
│    │    ├─info.plist              //iOS原生所需要添加到主 info.plist 文件中的配置文件,可选
│    │    ├─UTS.entitlements        //iOS原生所需要添加到主工程 .entitlements 文件中的配置文件,可选
│    │    ├─config.json             //iOS原生配置文件
│    │    ├─hybrid.swift            //ios混编的swift文件
│    │    └─index.uts               //iOS原生插件能力实现
│    ├─web                         //web平台目录
│    │    └─index.uts
│    ├─mp-alipay                   // 支付宝小程序平台,可选
│    ├─mp-baidu                    // 百度小程序平台,可选
│    ├─mp-jd                       // 京东小程序平台(仅限vue2),可选
│    ├─mp-kuaishou                 // 快手小程序平台,可选
│    ├─mp-lark                     // 飞书小程序平台,可选
│    ├─mp-qq                       // QQ小程序平台,可选
│    ├─mp-toutiao                  // 抖音小程序平台,可选
│    ├─mp-weixin                   // 微信小程序平台,可选
│    ├─mp-xhs                      // 小红书小程序平台(仅限vue2),可选
│    ├─interface.uts               // 声明插件对外暴露的API,必需
│    ├─unierror.uts                // 定义插件对外暴露的错误信息,可选
│    └─index.uts                   // 跨平台插件能力实现,可选
└─package.json                    // 插件清单文件,必需

官方的意思就是 index.uts 可以声明 原生插件在哪里, 然后utsdk里面组织放入真正的原生sdk,即可被识别和使用

下载原生sdk

找到对应要做的sdk的技术文档中心下载对应 安卓 和 ios的 sdk

对应放入文件

首先 了解 文件的目录

app-android 文件夹下存在Android平台原生配置,包括以下目录或文件

目录名/文件名

用途

assets

Android平台原生assets资源目录

libs

Android平台原生引用的三方jar/aar目录

res

Android平台原生res资源目录

AndroidManifest.xml

Android平台原生应用清单文件

config.json

Android平台下的配置文件

index.uts

主入口,interface.uts/index.d.ts声明的能力在Android平台下的实现

我们对应建立文件,并且放入对应sdk的代码文件。

比如新建assets后 Android平台原生assets资源目录, 我们把原生安卓sdk目录里面assets的内容复制进去,因为其他内容看起来很乱,因此并不知道 对应内容在哪里,首先我们得分析sdk的结构

分析 即构sdk 安卓项目的 目录:

项目目录结构分析
根目录 (ZegoEffects-release-android-shared-java)
Example: 包含示例应用的代码。
ZegoEffectsExample: 示例应用的具体实现。
build.gradle: 示例应用的构建配置文件(您已提供)。
src/main/java: 示例应用的主要 Java 源代码。
包名对应的目录(例如 com/example/zegoeffects)
核心功能模块的Java类文件
src/main/res: 示例应用的资源文件(如布局、图片等)。
src/test/java: 示例应用的单元测试代码。
src/androidTest/java: 示例应用的仪器化测试代码。
sdk 或 library: 假设 SDK 的源代码位于此目录下。
build.gradle: SDK 的构建配置文件。
src/main/java: SDK 的主要 Java 源代码。
包名对应的目录(例如 im/zego/sdk)
核心功能模块的Java类文件
src/main/res: SDK 的资源文件(如有)。
src/test/java: SDK 的单元测试代码。
docs: 文档目录,存放 API 文档或其他说明性文档。
examples: 示例代码目录,展示如何使用该 SDK。
build.gradle: 顶层构建配置文件(您已提供)。
settings.gradle: 定义项目中的模块(如 :Example, :sdk 等)。
gradle.properties: Gradle 属性配置文件。
gradlew 和 gradlew.bat: Gradle Wrapper 脚本,用于跨平台构建。
.gitignore: Git 忽略文件配置

本文已经实现了创建插件实例,分析了即构美颜sdk的目录,已经完成目标。

相关文章
|
5月前
|
数据采集 开发工具 Python
海康威视工业相机SDK+Python+PyQt开发数据采集系统(支持软件触发、编码器触发)
该系统基于海康威视工业相机SDK,使用Python与PyQt开发,支持Gige与USB相机设备的搜索及双相机同时显示。系统提供软件触发与编码器触发模式,并可在数据采集过程中实时保存图像。此外,用户可以调节曝光时间和增益,并进行信息输入,这些信息将被保存至配置文件以便下次自动加载。参数调节与实时预览等功能进一步增强了系统的实用性。
394 1
|
5月前
|
存储 监控 开发工具
Django 后端架构开发:手机与邮箱验证码接入、腾讯云短信SDK和网易邮箱
Django 后端架构开发:手机与邮箱验证码接入、腾讯云短信SDK和网易邮箱
111 0
|
6月前
|
NoSQL 开发工具 数据库
开发与运维测试问题之应用启动报 Can not load this fake sdk class 的异常如何解决
开发与运维测试问题之应用启动报 Can not load this fake sdk class 的异常如何解决
101 0
|
7月前
|
API 开发工具
抖音sdk,抖音开发api接口
抖音sdk,抖音开发api接口
|
8月前
|
Java 开发工具 Maven
Android SDK开发的那些事(1),已整理成文档
Android SDK开发的那些事(1),已整理成文档
|
5月前
|
JavaScript 前端开发 Java
[Android][Framework]系统jar包,sdk的制作及引用
[Android][Framework]系统jar包,sdk的制作及引用
155 0
|
2月前
|
Java Linux API
Android SDK
【10月更文挑战第21天】
133 1
|
3月前
|
程序员 开发工具 Android开发
Android|使用阿里云推流 SDK 实现双路推流不同画面
本文记录了一种使用没有原生支持多路推流的阿里云推流 Android SDK,实现同时推送两路不同画面的流的方法。
84 7
|
5月前
|
开发工具 Android开发
解决Android运行出现NDK at /Library/Android/sdk/ndk-bundle did not have a source.properties file
解决Android运行出现NDK at /Library/Android/sdk/ndk-bundle did not have a source.properties file
224 4
解决Android运行出现NDK at /Library/Android/sdk/ndk-bundle did not have a source.properties file
|
5月前
|
Dart 开发工具 Android开发
Android Studio导入Flutter项目提示Dart SDK is not configured
Android Studio导入Flutter项目提示Dart SDK is not configured
523 4

热门文章

最新文章