uniapp原⽣插件开发及打包发布
uniapp原⽣插件开发及打包发布
⼀.下载unipp提供的sdk包:
⼆.开发原⽣插件:
1.创建android空项⽬:
2.创建Module模块:
3.配置libs:
将sdk中的包lib.5plus.base-release.aar、android-gif-drawable-release@1.2.23.aar、uniapp-v8-release.aar和oaid_sdk_1.0.25.aar拷贝到创建的空项⽬中的libs⽬录下;
注意:如果需要集成的第三⽅sdk存在so库⽂件,只需添加armeabi-v7a、arm64-v8a、x86三个⽂件夹即可,否则会导致在部分⼿机上⽆法运⾏。
4.配置adle
apply plugin: 'com.android.application'
android {
compileSdkVersion 29
defaultConfig {
applicationId "application"
minSdkVersion 21
targetSdkVersion 28
versionCode 1
versionName "1.0"
multiDexEnabled true
ndk {
abiFilters 'x86', 'armeabi-v7a', 'arm64-v8a'
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile(''), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.aar', '*.jar'], exclude: [])
implementation 'androidx.appcompat:appcompat:1.0.0'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'com.alibaba:fastjson:1.1.46.android'
}
5.申请appkey:
6.配置l中的appkey:
application节点下的meta-data节点属性
android:name="dcloud_appkey"不改
android:value="替换为⾃⼰申请的Appkey" 修改为⾃⼰申请的appkey
<application
.
..>
<meta-data
android:name="dcloud_appkey"
android:value="替换为⾃⼰申请的Appkey" />
⼆.注册插件:
拷贝下载的sdk⽂件夹中的assets/dcloud_uniplugins.json(完整路径Android-SDK@3.2.3.81011_20210826\UniPlugin-Hello-
AS\app\src\main\assets)
⽅案⼀:(⽆特殊需求,使⽤此⽅案)
在“app” Module根⽬录assets/dcloud_uniplugins.json⽂件。在moudles节点下添加你要注册的Module
⽅案⼆:(需要初始化的需求,使⽤此⽅案)
1.创建⼀个实体类并实现UniAppHookProxy接⼝,在onCreate函数中添加组件注册相关参数或填写插件需要在启动时初始化的逻辑。public class RichAlert_AppProxy implements UniAppHookProxy {
@Override
public void onCreate(Application application) {
//当前uni应⽤进程回调仅触发⼀次多进程不会触发
//可通过UniSDKEngine注册UniModule或者UniComponent
}
@Override
public void onSubProcessCreate(Application application) {
//其他⼦进程初始化回调可⽤于初始化需要⼦进程初始化需要的逻辑
}
}
2.在hooksClass节点添加你创建实现UniAppHookProxy接⼝的实体类完整名称填⼊其中即可
nativePlugins:插件跟节点可存放多个插件
hooksClass:⽣命周期代理(实现AppHookProxy接⼝类)格式(完整包名加类名)
plugins: 插件数组
name : 注册名称
class : module 或 component 实体类完整名称
原生安卓app开发type : module 或 component类型。
⼆.调试原⽣插件:
1.使⽤hx(hbuiderx)创建uniapp项⽬
2.创建vue页⾯或者nvue,在js中第⼀⾏获取插件对象var testModule = quireNativePlugin("TestModule")
3.然后使⽤插件对象就可以调⽤到插件中的⽅法
4.在hx上的菜单上:发⾏-原⽣app-本地打包-⽣成本地app打包资源;
5.打包完成会在控制台上输出打包信息,我们关注的是打包路径;
6.打包资源放⼊创建的android空项⽬对应的⽬录中:
android空项⽬的资源路径:app/src/main/assets/apps/appid/www,如果没有某个⽬录⾃⼰⼿动建⽴即可;
appid获取⽅式:
在uniapp项⽬中打开⽂件manifest.json中就可以查看到。
7.拷贝sdk中提供的data⽂件夹:
路径位于Android-SDK@3.2.3.81011_20210826\SDK\assets
8.修改拷贝的data⽂件夹下的l:
appid替换为⾃⼰的appid
<hbuilder>
<apps>
<app appid="__UNI__FE33477" appver=""/>
</apps>
</hbuilder>
appid获取⽅式:
在uniapp项⽬中打开⽂件manifest.json中就可以查看到。
9.引⽤插件:
在app项⽬下的 adle⽂件dependencies节点中添加app插件
// 添加uni-app插件
implementation project(':创建的Module模块名称') 10以真机⽅式允许项⽬或者调试;
三.原⽣插件aar打包:
1.
四.uniapp本地插件:
五.uniapp插件发布到市场:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论