uniapp开发android原生插件

打印 上一主题 下一主题

主题 776|帖子 776|积分 2328

1.下载android平台SDK
   开发者须知 | uni小程序SDK
  2. 解压并导入UniPlugin-Hello-AS项目到android studio

   
  

  • 点击Android Studio菜单选项File--->New--->Import Project。
  
  

  • 如果出现Android SDK路径不对问题,请在Android Studio中鼠标右键UniPlugin-Hello-AS选择Open Module Settings, 在SDK Location 中设置相关环境路径

  3. 新建 module

   
  
  完成后等待加载完成
  4.插件开发

(1) 将uniplugin_module的build.grade的内容复制到新建的模块的build.grade中,根据需要修改compileSdkVersion等信息。
(2)在app的build.grade中添加implementation project(':模块名')

(3) 在新建的模块中新建java类extends UniModule


编写代码
  1.  
  2. package com.cn.akiplugin.test;
  3.  
  4. import android.util.Log;
  5.  
  6.  
  7. import com.alibaba.fastjson.JSONObject;
  8.  
  9.  
  10. import io.dcloud.feature.uniapp.annotation.UniJSMethod;
  11.  
  12. import io.dcloud.feature.uniapp.bridge.UniJSCallback;
  13.  
  14. import io.dcloud.feature.uniapp.common.UniModule;
  15.  
  16.  
  17. public class MainModule extends UniModule{
  18.  
  19.  
  20.  
  21.  
  22. @UniJSMethod(uiThread = false)
  23.  
  24.  
  25.  
  26. public void register(JSONObject options, UniJSCallback jsCallback){
  27.  
  28.  
  29.  
  30.  
  31.  
  32. Log.i("register",JSONObject.toJSONString(options));
  33.  
  34.  
  35.  
  36.  
  37.  
  38. jsCallback.invoke(new JSONObject(){{
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46. put("code",0);
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54. put("data",123);
  55.  
  56.  
  57.  
  58.  
  59.   }});
  60.  
  61.  
  62.   }
  63.  
  64. }
复制代码
 


5. 相关配置

(1) 在app\src\main\assets\dcloud_uniplugins.json文件中增加配置 此处以moudule为例
  1. {
  2.  
  3.  
  4.  
  5.  
  6. "hooksClass": "",
  7.  
  8.  
  9.  
  10.  
  11. "plugins": [
  12.  
  13.  
  14.  
  15.  
  16.   {
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23. "type": "module",
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30. "name": "插件名称,如:aki-test",
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37. "class": "主类,上述代码中MainModule路径 如:com.cn.akiplugin.test.MainModule"
  38.  
  39.  
  40.  
  41.  
  42.   }
  43.  
  44.  
  45.  
  46.   ]
  47.  
  48.  
  49.   }
复制代码



6. 插件调试

(1) 打开hbuiderx 创建一个uniapp项目编写调试代码
  1. <!-- 为了测试方便,将index.vue 修改为nvue -->
  2.  
  3. <template>
  4.  
  5.     <view class="content">
  6.  
  7.         <view class="result">
  8.  
  9.             {{result}}
  10.  
  11.         </view>
  12.  
  13.         <view class="list">
  14.  
  15.             <text class="txt" @tap="registerData">注册...</text>
  16.  
  17.         </view>
  18.  
  19.     </view>
  20.  
  21. </template>
  22.  
  23.  
  24. <script>
  25.  
  26.     const akiTest = uni.requireNativePlugin("aki-test");
  27.  
  28.     let that = null;
  29.  
  30.     export default {
  31.  
  32.         data() {
  33.  
  34.             return {
  35.  
  36.                 title: 'Hello',
  37.  
  38.                 result:'result:',
  39.  
  40.                 plugin:null
  41.  
  42.             }
  43.  
  44.         },
  45.  
  46.         onLoad() {
  47.  
  48.             that = this;
  49.  
  50.         },
  51.  
  52.         onShow() {
  53.  
  54.         },
  55.  
  56.         methods: {
  57.  
  58.             registerData(){
  59.  
  60.                 akiTest.register({},e=>{
  61.  
  62.                     that.result = "register:"+JSON.stringify(e);
  63.  
  64.                     uni.showToast({
  65.  
  66.                         title:JSON.stringify(e),
  67.  
  68.                         icon:"none"
  69.  
  70.                     })
  71.  
  72.                 })
  73.  
  74.             }
  75.  
  76.  
  77.         }
  78.  
  79.     }
  80.  
  81. </script>
  82.  
  83.  
  84. <style>
  85.  
  86.     .content {
  87.  
  88.         display: flex;
  89.  
  90.         flex-direction: column;
  91.  
  92.         align-items: center;
  93.  
  94.         justify-content: center;
  95.  
  96.     }
  97.  
  98.  
  99.  
  100.     .text-area {
  101.  
  102.         display: flex;
  103.  
  104.         justify-content: center;
  105.  
  106.     }
  107.  
  108.  
  109.     .result {
  110.  
  111.         font-size: 36rpx;
  112.  
  113.         color: #8f8f94;
  114.  
  115.         width: 690rpx;
  116.  
  117.         display: flex;
  118.  
  119.         margin-top: 40rpx;
  120.  
  121.     }
  122.  
  123.    
  124.  
  125.     .list{
  126.  
  127.         width: 750rpx;
  128.  
  129.         height: auto;
  130.  
  131.         display: flex;
  132.  
  133.         flex-direction: column;
  134.  
  135.         align-items: center;
  136.  
  137.         justify-content: center;
  138.  
  139.     }
  140.  
  141.     .txt{
  142.  
  143.         width: 300rpx;
  144.  
  145.         height: 88rpx;
  146.  
  147.         line-height: 88rpx;
  148.  
  149.         border-radius: 20rpx;
  150.  
  151.         text-align: center;
  152.  
  153.         color: #fff;
  154.  
  155.         background-color: #2D9F7E;
  156.  
  157.         margin-bottom: 40rpx;
  158.  
  159.     }
  160.  
  161. </style>
复制代码
  1.  
复制代码
(2)打包:发行 ---> 原生app-当地打包 ---> 生成当地打包app资源
(3)将打包完的资源拷贝到android studio 项目目次下
   进入android studio 项目\app\src\main\assets\apps目次下 删除原有__UNI__E文件夹
  将当地打包app资源复制到此目次下
  
  (4)修改dcloud_control.xml(文件位置app\src\main\assets\data\dcloud_control.xml)
  1.  
复制代码
  1. <hbuilder debug="true" syncDebug="true"> 
  2. <apps> 
  3.  
  4.  
  5. <app appid="此处填uniapp项目的应用标识(AppID)" appver="" /> 
  6. </apps> 
  7. </hbuilder>
复制代码
  1.  
复制代码

(5)配置离线打包key
   

  • 进入开发者后台:开发者中心
  • 找到前序步骤创建的项目
  • 点击应用名称进入应用信息
  • 点击Android云端证书
  • 创建证书 等待完成(约几分钟) 完成后刷新
  • 重新进入Android云端证书界面点击下载证书
  • 点击证书详情,点击查看证书暗码,记住暗码以及详情数据
  • 点击各平台信息 -- 新增
  • 将证书详情中的SHA1复制到Android 应用署名SHA1值
  • 将证书详情中的SHA256复制到Android 应用署名SHA256
  • 将证书详情中的MD5复制到Android 应用署名MD5
  • 录入完成后点击提交
  • 点击离线打包Key列的创建,弹出页面点击创建
  • 点击离线打包Key列查看,复制Android内容


  • 打开Android项目的AndroidManifest,xml 文件修改如下两处
    1.  
    2. <manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    3.  
    4.  
    5. xmlns:tools="http://schemas.android.com/tools" 
    6.  
    7.  
    8. package="此处填写开发者后台创建的包名/appid/域名"> 
    9.  
    10.  
    11.  
    12. <meta-data 
    13.  
    14.  
    15.  
    16.  
    17.  
    18.  
    19. android:name="dcloud_appkey" 
    20.  
    21.  
    22.  
    23.  
    24.  
    25.  
    26. android:value="此处填写上述的AppKey" />
    复制代码

  • 在app下新建目次key,将6中下载的证书复制到此文件夹
  • 修改项目项目包名app的build.grade文件

  • 修改app的build.grade 的证书配置
    1.  
    2. signingConfigs { 
    3.  
    4.  
    5.  
    6.  
    7. config { 
    8.  
    9.  
    10.  
    11.  
    12.  
    13.  
    14. keyAlias '证书详情中的别名' 
    15.  
    16.  
    17.  
    18.  
    19.  
    20.  
    21. keyPassword '步骤7中复制的暗码' 
    22.  
    23.  
    24.  
    25.  
    26.  
    27.  
    28. storeFile file('key/证书名称') 
    29.  
    30.  
    31.  
    32.  
    33.  
    34.  
    35. storePassword '步骤7中复制的暗码' 
    36.  
    37.  
    38.  
    39.  
    40.  
    41.  
    42. v1SigningEnabled true 
    43.  
    44.  
    45.  
    46.  
    47.  
    48.  
    49. v2SigningEnabled true 
    50.  
    51.  
    52.  
    53.   } 
    54.  
    55.   }
    复制代码

  • 点击Sync Now
  • 完成后启动项目

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

魏晓东

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表