网站制网站制作公司,攀枝花市住房和城乡建设局网站,建筑方案设计流程,东莞寮步二手车市场前言 最近公司要求研究一下 uniapp 的 android 原生插件的开发#xff0c;为以后的工作做准备。这篇文章记录一下自己的学习过程#xff0c;也帮助一下有同样需求的同学们 : ) 一、下载安装Hbuilder X , Android studio#xff08;相关的安装配置过程网上有很多#xff0c;… 前言 最近公司要求研究一下 uniapp 的 android 原生插件的开发为以后的工作做准备。这篇文章记录一下自己的学习过程也帮助一下有同样需求的同学们 : ) 一、下载安装Hbuilder X , Android studio相关的安装配置过程网上有很多在这里就不再赘述,具体配置要求也可以访问官网查看Android 插件开发教程 二、开发步骤 1.下载uniapp 的Android 离线SDK(可以前往官网链接下载Android 离线SDK) 下载后得到压缩包 2.android studio 导入工程 解压压缩包 使用android studio 导入压缩包中的UniPlugin-Hello-AS项目 导入后目录结构为然后就可以开始我们的开发之旅了 3.新建module项目 选择 Android Library 输入你的插件名称 点击finish将app目录下的libs中的uniapp-v8-release.aar复制到你创建的module目录下的libs中我创建的是xiaohu_TestModule,后面都用xiaohu_TestModule讲解 打开你创建的xiaohu_TestModule目录下的build.gradle 修改依赖为 span stylecolor:rgba(0, 0, 0, 0.75)span stylecolor:#000000span stylebackground-color:#282c34code classlanguage-javadependencies span stylecolor:#999999{/spancompileOnly span stylecolor:#61aeeefileTree/spanspan stylecolor:#999999(/spandirspan stylecolor:#669900:/span span stylecolor:#669900libs/spanspan stylecolor:#999999,/span includespan stylecolor:#669900:/span span stylecolor:#999999[/spanspan stylecolor:#669900*.jar/spanspan stylecolor:#999999]/spanspan stylecolor:#999999)/spancompileOnly span stylecolor:#61aeeefileTree/spanspan stylecolor:#999999(/spandirspan stylecolor:#669900:/span span stylecolor:#669900libs/spanspan stylecolor:#999999,/span includespan stylecolor:#669900:/span span stylecolor:#999999[/spanspan stylecolor:#669900uniapp-v8-release.aar/spanspan stylecolor:#999999]/spanspan stylecolor:#999999)/spancompileOnly span stylecolor:#669900androidx.legacy:legacy-support-v4:1.0.0/spancompileOnly span stylecolor:#669900androidx.appcompat:appcompat:1.0.0/spancompileOnly span stylecolor:#669900androidx.recyclerview:recyclerview:1.0.0/spanspan stylecolor:#5c6370//下面的可以删除/spanspan stylecolor:#5c6370/*implementation androidx.appcompat:appcompat:1.2.0implementation com.google.android.material:material:1.2.1testImplementation junit:junit:4.androidTestImplementation androidx.test.ext:junit:1.1.2androidTestImplementation androidx.test.espresso:espresso-core:3.3.0*//span
span stylecolor:#999999}/span
/code/span/span/span 1234567891011121314151617 然后module就配置完了然后就是android 的开发工作 下面是一个简单的示例。 新建类AndroidDialog 继承UniModule示例是调用android原生的系统弹窗 然后在AndroidDialog内写上自己的代码 span stylecolor:rgba(0, 0, 0, 0.75)span stylecolor:#000000span stylebackground-color:#282c34code classlanguage-javaspan stylecolor:#c678ddpackage/span comspan stylecolor:#999999./spanxiaohuspan stylecolor:#999999./spanxiaohu_testmodulespan stylecolor:#999999;/spanspan stylecolor:#c678ddimport/span androidspan stylecolor:#999999./spanappspan stylecolor:#999999./spanActivityspan stylecolor:#999999;/span
span stylecolor:#c678ddimport/span androidspan stylecolor:#999999./spancontentspan stylecolor:#999999./spanDialogInterfacespan stylecolor:#999999;/span
span stylecolor:#c678ddimport/span androidspan stylecolor:#999999./spanutilspan stylecolor:#999999./spanLogspan stylecolor:#999999;/span
span stylecolor:#c678ddimport/span androidspan stylecolor:#999999./spanwidgetspan stylecolor:#999999./spanToastspan stylecolor:#999999;/spanspan stylecolor:#c678ddimport/span androidxspan stylecolor:#999999./spanappcompatspan stylecolor:#999999./spanappspan stylecolor:#999999./spanAlertDialogspan stylecolor:#999999;/spanspan stylecolor:#c678ddimport/span comspan stylecolor:#999999./spantaobaospan stylecolor:#999999./spanweexspan stylecolor:#999999./spanannotationspan stylecolor:#999999./spanJSMethodspan stylecolor:#999999;/span
span stylecolor:#c678ddimport/span comspan stylecolor:#999999./spantaobaospan stylecolor:#999999./spanweexspan stylecolor:#999999./spanbridgespan stylecolor:#999999./spanJSCallbackspan stylecolor:#999999;/spanspan stylecolor:#c678ddimport/span javaspan stylecolor:#999999./spanutilspan stylecolor:#999999./spanMapspan stylecolor:#999999;/spanspan stylecolor:#c678ddimport/span iospan stylecolor:#999999./spandcloudspan stylecolor:#999999./spanfeaturespan stylecolor:#999999./spanuniappspan stylecolor:#999999./spancommonspan stylecolor:#999999./spanUniModulespan stylecolor:#999999;/spanspan stylecolor:#c678ddpublic/span span stylecolor:#c678ddclass/span AndroidDialog span stylecolor:#c678ddextends/span UniModule span stylecolor:#999999{/spanspan stylecolor:#5c6370/*** 调用原生Dialog显示*//spanspan stylecolor:#999999JSMethod/spanspan stylecolor:#999999(/spanuiThread span stylecolor:#669900/span span stylecolor:#56b6c2true/spanspan stylecolor:#999999)/span span stylecolor:#5c6370//必须加上注释不然uniapp无法调用/spanspan stylecolor:#c678ddpublic/span span stylecolor:#c678ddvoid/span span stylecolor:#61aeeeshowDialog/spanspan stylecolor:#999999(/spanJSCallback jsCallbackspan stylecolor:#999999)/span span stylecolor:#999999{/span span stylecolor:#5c6370//需为pulic/spanspan stylecolor:#c678ddif/span span stylecolor:#999999(/spanmWXSDKInstance span stylecolor:#669900!/span span stylecolor:#c678ddnull/span span stylecolor:#669900/span mWXSDKInstancespan stylecolor:#999999./spanspan stylecolor:#61aeeegetContext/spanspan stylecolor:#999999(/spanspan stylecolor:#999999)/span span stylecolor:#c678ddinstanceof/span Activityspan stylecolor:#999999)/span span stylecolor:#999999{/spanspan stylecolor:#c678ddnew/span AlertDialogspan stylecolor:#999999./spanBuilderspan stylecolor:#999999(/spanmWXSDKInstancespan stylecolor:#999999./spanspan stylecolor:#61aeeegetContext/spanspan stylecolor:#999999(/spanspan stylecolor:#999999)/spanspan stylecolor:#999999)/spanspan stylecolor:#999999./spanspan stylecolor:#61aeeesetTitle/spanspan stylecolor:#999999(/spanspan stylecolor:#669900弹窗/spanspan stylecolor:#999999)/spanspan stylecolor:#999999./spanspan stylecolor:#61aeeesetMessage/spanspan stylecolor:#999999(/spanspan stylecolor:#669900这是一个测试弹窗/spanspan stylecolor:#999999)/spanspan stylecolor:#999999./spanspan stylecolor:#61aeeesetPositiveButton/spanspan stylecolor:#999999(/spanspan stylecolor:#669900确定/spanspan stylecolor:#999999,/span span stylecolor:#c678ddnew/span DialogInterfacespan stylecolor:#999999./spanOnClickListenerspan stylecolor:#999999(/spanspan stylecolor:#999999)/span span stylecolor:#999999{/spanspan stylecolor:#999999Override/spanspan stylecolor:#c678ddpublic/span span stylecolor:#c678ddvoid/span span stylecolor:#61aeeeonClick/spanspan stylecolor:#999999(/spanDialogInterface dialogspan stylecolor:#999999,/span span stylecolor:#c678ddint/span whichspan stylecolor:#999999)/span span stylecolor:#999999{/spanjsCallbackspan stylecolor:#999999./spanspan stylecolor:#61aeeeinvoke/spanspan stylecolor:#999999(/spanspan stylecolor:#669900点击了确定/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/spanspan stylecolor:#999999}/spanspan stylecolor:#999999}/spanspan stylecolor:#999999)/spanspan stylecolor:#999999./spanspan stylecolor:#61aeeesetNegativeButton/spanspan stylecolor:#999999(/spanspan stylecolor:#669900取消/spanspan stylecolor:#999999,/span span stylecolor:#c678ddnew/span DialogInterfacespan stylecolor:#999999./spanOnClickListenerspan stylecolor:#999999(/spanspan stylecolor:#999999)/span span stylecolor:#999999{/spanspan stylecolor:#999999Override/spanspan stylecolor:#c678ddpublic/span span stylecolor:#c678ddvoid/span span stylecolor:#61aeeeonClick/spanspan stylecolor:#999999(/spanDialogInterface dialogspan stylecolor:#999999,/span span stylecolor:#c678ddint/span whichspan stylecolor:#999999)/span span stylecolor:#999999{/spanjsCallbackspan stylecolor:#999999./spanspan stylecolor:#61aeeeinvoke/spanspan stylecolor:#999999(/spanspan stylecolor:#669900点击了取消/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/spanspan stylecolor:#999999}/spanspan stylecolor:#999999}/spanspan stylecolor:#999999)/spanspan stylecolor:#999999./spanspan stylecolor:#61aeeeshow/spanspan stylecolor:#999999(/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/spanspan stylecolor:#999999}/spanspan stylecolor:#999999}/spanspan stylecolor:#5c6370/*** 调用原生Toast显示传入内容*//spanspan stylecolor:#999999JSMethod/spanspan stylecolor:#999999(/spanuiThread span stylecolor:#669900/span span stylecolor:#56b6c2true/spanspan stylecolor:#999999)/spanspan stylecolor:#c678ddpublic/span span stylecolor:#c678ddvoid/span span stylecolor:#61aeeeshowToast/spanspan stylecolor:#999999(/spanString messagespan stylecolor:#999999)/span span stylecolor:#999999{/spanspan stylecolor:#c678ddif/span span stylecolor:#999999(/spanmWXSDKInstance span stylecolor:#669900!/span span stylecolor:#c678ddnull/span span stylecolor:#669900/span mWXSDKInstancespan stylecolor:#999999./spanspan stylecolor:#61aeeegetContext/spanspan stylecolor:#999999(/spanspan stylecolor:#999999)/span span stylecolor:#c678ddinstanceof/span Activityspan stylecolor:#999999)/span span stylecolor:#999999{/spanToastspan stylecolor:#999999./spanspan stylecolor:#61aeeemakeText/spanspan stylecolor:#999999(/spanmWXSDKInstancespan stylecolor:#999999./spanspan stylecolor:#61aeeegetContext/spanspan stylecolor:#999999(/spanspan stylecolor:#999999)/spanspan stylecolor:#999999,/span messagespan stylecolor:#999999./spanspan stylecolor:#61aeeetoString/spanspan stylecolor:#999999(/spanspan stylecolor:#999999)/spanspan stylecolor:#999999,/span Toastspan stylecolor:#999999./spanLENGTH_SHORTspan stylecolor:#999999)/spanspan stylecolor:#999999./spanspan stylecolor:#61aeeeshow/spanspan stylecolor:#999999(/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/spanLogspan stylecolor:#999999./spanspan stylecolor:#61aeeee/spanspan stylecolor:#999999(/spanspan stylecolor:#669900调用处理/spanspan stylecolor:#999999,/spanspan stylecolor:#669900bu显示就bu快乐/spanspan stylecolor:#999999)/spanspan stylecolor:#999999;/spanspan stylecolor:#999999}/spanspan stylecolor:#999999}/span
span stylecolor:#999999}/span/code/span/span/span 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 到这一个简单的插件就写完了但是我们肯定要先做一下测试才能发布或者给别人使用 4.调试插件 打开HbuilderX 新建unipp项目 uniTest创建完成后的目录结构修改index.vue的代码 span stylecolor:rgba(0, 0, 0, 0.75)span stylecolor:#000000span stylebackground-color:#282c34code classlanguage-javaspan stylecolor:#999999/spantemplatespan stylecolor:#999999/spanspan stylecolor:#669900/spanview span stylecolor:#c678ddclass/spanspan stylecolor:#669900/spanspan stylecolor:#669900content/spanspan stylecolor:#669900/spanspan stylecolor:#669900/spanview span stylecolor:#c678ddclass/spanspan stylecolor:#669900/spanspan stylecolor:#669900button1/spanspan stylecolor:#669900/spanspan stylecolor:#669900/spanbutton span stylecolor:#999999click/spanspan stylecolor:#669900/spanspan stylecolor:#669900showDialog(message)/spanspan stylecolor:#669900/span点击显示原生Dialogspan stylecolor:#669900/spanspan stylecolor:#669900//spanbuttonspan stylecolor:#669900/spanspan stylecolor:#669900/spanspan stylecolor:#669900//spanviewspan stylecolor:#669900/spanspan stylecolor:#669900/spanspan stylecolor:#669900//spanviewspan stylecolor:#669900/span
span stylecolor:#669900/spanspan stylecolor:#669900//spantemplatespan stylecolor:#669900/spanspan stylecolor:#999999/spanscriptspan stylecolor:#999999/spanspan stylecolor:#c678ddconst/span AndroidDialogModule span stylecolor:#669900/span unispan stylecolor:#999999./spanspan stylecolor:#61aeeerequireNativePlugin/spanspan stylecolor:#999999(/spanspan stylecolor:#669900AndroidDialog/spanspan stylecolor:#999999)/spanexport span stylecolor:#c678dddefault/span span stylecolor:#999999{/spanspan stylecolor:#61aeeedata/spanspan stylecolor:#999999(/spanspan stylecolor:#999999)/span span stylecolor:#999999{/spanspan stylecolor:#999999}/spanspan stylecolor:#999999,/spanspan stylecolor:#61aeeeonLoad/spanspan stylecolor:#999999(/spanspan stylecolor:#999999)/span span stylecolor:#999999{/spanspan stylecolor:#999999}/spanspan stylecolor:#999999,/spanmethodsspan stylecolor:#669900:/span span stylecolor:#999999{/spanspan stylecolor:#61aeeeshowDialog/spanspan stylecolor:#999999(/spanmessagespan stylecolor:#999999)/span span stylecolor:#999999{/spanAndroidDialogModulespan stylecolor:#999999./spanspan stylecolor:#61aeeeshowDialog/spanspan stylecolor:#999999(/spanprocessokdata span stylecolor:#669900/spanspan stylecolor:#669900/span span stylecolor:#999999{/spanAndroidDialogModulespan stylecolor:#999999./spanspan stylecolor:#61aeeeshowToast/spanspan stylecolor:#999999(/spanprocessokdataspan stylecolor:#999999)/spanspan stylecolor:#999999}/spanspan stylecolor:#999999)/spanspan stylecolor:#999999}/spanspan stylecolor:#999999,/spanspan stylecolor:#999999}/spanspan stylecolor:#999999}/span
span stylecolor:#669900/spanspan stylecolor:#669900//spanscriptspan stylecolor:#669900/spanspan stylecolor:#999999/spanstylespan stylecolor:#999999/spanspan stylecolor:#999999./spanbutton1 span stylecolor:#999999{/spandisplayspan stylecolor:#669900:/span flexspan stylecolor:#999999;/spanmarginspan stylecolor:#669900-/spantopspan stylecolor:#669900:/span span stylecolor:#98c379200/spanrpxspan stylecolor:#999999;/spanmarginspan stylecolor:#669900-/spanleftspan stylecolor:#669900:/span autospan stylecolor:#999999;/spanmarginspan stylecolor:#669900-/spanrightspan stylecolor:#669900:/span autospan stylecolor:#999999;/spanflexspan stylecolor:#669900-/spandirectionspan stylecolor:#669900:/span columnspan stylecolor:#999999;/spanalignspan stylecolor:#669900-/spanitemsspan stylecolor:#669900:/span centerspan stylecolor:#999999;/spanjustifyspan stylecolor:#669900-/spancontentspan stylecolor:#669900:/span centerspan stylecolor:#999999;/spanspan stylecolor:#999999}/span
span stylecolor:#669900/spanspan stylecolor:#669900//spanstylespan stylecolor:#669900/span
/code/span/span/span 1234567891011121314151617181920212223242526272829303132333435363738 打包为本地资源编译完成后会返回文件存放地址将打包得到的文件夹名称是__UNI__24505A6类似这样的复制到android 项目中的app/src/main/assets/apps下将同目录下data文件夹中的dcloud_control文件中的appid改为你复制的文件夹名称 在dcloud_uniplugins.json中添加插件配置 最后还需要配置两个文件 app目录下的AndroidMainfest.xml中需要配置uniapp的key值可以从dcloud的开发者平台配置获取这个很简单就不在说了。在app目录下的build.gradle中依赖你写的module 到这里一个简单的原生插件就开发完成了运行到手机或者模拟器就能得到你的成果了 官网 简介 | uni小程序SDK