# UniLocalAndroidPlugins **Repository Path**: vindinser/uni-local-android-plugins ## Basic Information - **Project Name**: UniLocalAndroidPlugins - **Description**: uniapp-Android原生插件 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-20 - **Last Updated**: 2025-08-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## UniLocalAndroidPlugins > uniapp-Android原生插件 作者:zs 版本:1.0.0 版权:zs ### 技术栈 - Android、Kotlin、Gradle - Uniapp ### 项目结构 ```kotlin . ├── README.md ├── uniplugin_xxx │ ├── libs // 插件所用到的jar、aar、so等 │ └── src │ │ ├── main │ │ │ ├── java // 核心代码 │ │ │ ├── res // 资源文件 │ │ │ └── AndroidManifest.xml // 模块配置 ├── .gitignore ├── build.gradle.kts ├── settings.gradle.kts ├── gradle // gradle版本依赖 └── .gitignore // git忽略文件 ``` ### 使用教程 - 单library构建aar - 将构好的arr放置于uniapp项目`nativeplugins`目录下 - uniapp项目目录结构 ``` kotlin . ├── uniapp项目根目录 │ ├── nativeplugins │ │ ├── uniplugin_xxx // 插件id命名的文件夹 │ │ │ ├── android // 安卓插件目录 │ │ │ │ ├── libs // 存放插件包依赖的第三方 .jar文件和.so文件 │ │ │ │ │ ├── xxx.jar // 插件包依赖的第三方 .jar │ │ │ │ │ └── libxxx.so // 插件包依赖的第三方 ..so文件 │ │ │ │ └── uniplugin_xxx.aar // 包括插件aar、插件所依赖的aa │ │ │ └── package.json // 安卓插件目录 ``` - [package.json](https://nativesupport.dcloud.net.cn/NativePlugin/course/package.html) 插件信息 ``` json // name、id、_dp_nativeplugin.android.plugins[x].name 可相同 { "name": "插件名称", "id": "插件标识,需要保证唯一性", "version": "插件版本号", "description": "插件描述信息", "_dp_type":"nativeplugin", "_dp_nativeplugin":{ "android": { "plugins": [ { "type": "module|component, 必填, 根据插件类型选择", "name": "必填, 注册插件的名称, 注意:module 的 name 必须以插件id为前缀或和插件id相同,比如 `DCTestUniPlugin-TestModule`,其中 DCTestUniPlugin 为插件的id,避免与其他插件冲突,component 的 name 没有强制要求,但是也要保证唯一比如 `dc-map`", "class": "必填, 注册插件的类名" } ], "hooksClass": "可选, 事件钩子注册类名", "integrateType": "必填, 可取值aar|jar", "dependencies": [ "可选, 依赖的库名称" ], "excludeDependencies": [ "可选,需要排除的HX内置模块依赖库名称" //HBuilderX3.1.18+支持:仅在插件与HX内置模块依赖库存在冲突时可能需要,使用前请在官方QQ交流群“DCloud原生开发者群”中联系管理员确认 ], "compileOptions": { //可选,Java编译参数配置 "sourceCompatibility": "1.8", "targetCompatibility": "1.8" }, "abis": [ "可选, 支持的abi类型, 可取值armeabi-v7a|arm64-v8a|x86" ], "minSdkVersion": "可选,支持的Android最低版本,如21", "useAndroidX": false, //可选,是否兼容使用AndroidX 3.2.5+版本后废弃该属性 "permissions": [ "可选, 要使用的Android权限列表" ], "parameters": { "插件需要配置的参数名称, 如appid": { "des": "参数描述", "key": "AndroidManifest.xml中添加meta-data节点!对应android:name属性值, 如GETUI_APPID", "placeholder": "build.gradle中添加到manifestPlaceholders中的字段名" } } }, "ios": { "plugins": [ { "type": "必填, module|component, 根据插件类型选择", "name": "必填, 注册插件的名称, 通常与插件标识一致", "class": "必填, 注册插件的类名" } ], "integrateType": "必填, 可取值framework|library", "hooksClass": "可选, 事件钩子注册类名", "frameworks": [ "依赖的系统库(系统库有.framework和.tbd和.dylib类型),和第三方.framework动态库;(.a 库或 .framework**静态库**直接放到ios根目录即可,不需要配置)" ], "embedFrameworks": [ "依赖的.framework动态库(注意.framework动态库也需要在上面的 frameworks 节点添加配置,同样将动态库.framework文件放到 ios 目录)" ], "capabilities": { // 配置应用的capabilities数据(根据XCode规范分别配置到entitlements和plist文件中) "entitlements": { // 合并到工程entitlements文件的数据(json格式) }, "plists": { // 合并到工程Info.plist文件的数据(json格式) } }, "plists": { // 自定义配置工程Info.plist文件的数据(json格式),优先级高于capabilities->plists }, "assets": [ //HBuilderX2.3.4及以上版本支持 "可选,插件要使用的xcassets文件列表,相对于ios目录的路径" ], "privacies": [ "可选, 插件使用到的隐私列表,如NSPhotoLibraryUsageDescription" ], "embedSwift": false, // 开启 swift 编译支持,如果插件使用了 swift 需要配置此项 "deploymentTarget": "8.0, 可选,注意:使用 Xcode14 需配置为 "11.0" "validArchitectures": [ // 可选,支持的CPU架构类型 "arm64" // 支持多个值,可取值:"arm64", "armv7",注意:使用 Xcode14 需要配置为 “arm64” ], "parameters": { "插件需要配置的参数名称, 如appid": { "des": "参数描述信息", "key": "参数需要配置到info.plist中的键名, 嵌套时使用:分割,如getui:appid" } }, "resources": [ "可选, 插件要使用的资源文件列表,相对于ios目录的路径 ,HX 3.2.0+ 版本不在推荐使用,请参考文档下面的 “依赖资源文件” 说明" ] } } } ``` - uniapp项目的`manifest.json`文件中(App原生插件配置)选择本地插件 ``` json { /* 5+App特有相关 */ "app-plus" : { "nativePlugins" : { "uniplugin_xxx" : { "__plugin_info__" : { "name" : "uniplugin_xxx", "description" : "描述", "platforms" : "Android", "url" : "", "android_package_name" : "", "ios_bundle_id" : "", "isCloud" : false, "bought" : -1, "pid" : "", "parameters" : {} } } } } } ``` - 使用 ``` vue // #ifdef APP-PLUS const uniplugin_xxx = uni.requireNativePlugin('uniplugin_xxx'); // #endif ```