uniapp 原生安卓开发插件(module),以及android环境本地调试(一)

这篇具有很好参考价值的文章主要介绍了uniapp 原生安卓开发插件(module),以及android环境本地调试(一)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

uniapp 原生安卓开发插件(module),以及android环境本地调试

1、开发前景

由于uniapp 框架的局限先,有很多功能不能如原生android开发使用顺畅,因此,需要使用插件进行辅助,再由uniapp引入插件,使得功能完善。废话不多说,直接上教程!觉得有用的麻烦点个赞吧!

2、准备工作

  • uniapp 项目(也就是你自己的项目)
  • 下载 安装JDK (java的JDK)jdk1.8
  • 下载 安装 android studio (csdn下载),官网下载 android studio(官网下载需要翻墙、安装的时候也是需要翻墙的,公司的网络最好能够访问外网,不然会下载不了sdk(博主也是弄了很久))
  • 下载解压 uniapp 离线SDK (App 离线SDK)
    uniapp 原生安卓开发插件(module),以及android环境本地调试(一)
    到此准备工作结束

3、android 导入 app离线SDK(第二点4下载的压缩包)

  • 解压 app离线SDK
    uniapp 原生安卓开发插件(module),以及android环境本地调试(一)
    uniapp 原生安卓开发插件(module),以及android环境本地调试(一)

  • 将UniPlugin-Hello-AS项目导入到Android studio中
    uniapp 原生安卓开发插件(module),以及android环境本地调试(一)

  • 等待导入编译完成,切换到 project模式。编译完成后的项目结构如下
    uniapp 原生安卓开发插件(module),以及android环境本地调试(一)

4、新建module(实现我们功能的模块)

  • 新建module
    uniapp 原生安卓开发插件(module),以及android环境本地调试(一)

  • 选择Android library,填上你的package name (记住不能跟uniapp 打包时候的包名相同(这是个坑,uniapp不兼容)),点击Finish
    uniapp 原生安卓开发插件(module),以及android环境本地调试(一)

  • 导入导入uniapp-release.aar插件,它是扩展module主要依赖库
    在 App离线SDK 中 —> SDK 文件夹 ----> libs -----> 找到 uniapp-release.aar
    uniapp 原生安卓开发插件(module),以及android环境本地调试(一)
    把它移动到 之前 android 导入的项目中,切换到 project 目录

uniapp 原生安卓开发插件(module),以及android环境本地调试(一)

  • 给新建的module (uniplugin_sunmi 是我自己新建模块)添加 依赖
repositories {
    flatDir {
        dirs 'libs'
    }
}

dependencies {
    compileOnly fileTree(dir: 'libs', include: ['*.jar'])

    compileOnly fileTree(dir: '../app/libs', include: ['uniapp-v8-release.aar'])

    implementation 'androidx.recyclerview:recyclerview:1.0.0'
    implementation 'androidx.legacy:legacy-support-v4:1.0.0'
    implementation 'androidx.appcompat:appcompat:1.0.0'
    implementation 'com.alibaba:fastjson:1.1.46.android'
    implementation 'com.facebook.fresco:fresco:1.13.0'
    testImplementation 'junit:junit:4.12'

}

uniapp 原生安卓开发插件(module),以及android环境本地调试(一)

如果同步失败,请检查是否出现 下图错误 No signature ofm.android0 is applicable for arg
Try Again Open ‘Build’ View
Show Log in Explorer

uniapp 原生安卓开发插件(module),以及android环境本地调试(一)
请删除 namespace,再在找到androidManifest.xml 添加包名,再点击 file —> sync project whit Gradle Files 进行同步即可
uniapp 原生安卓开发插件(module),以及android环境本地调试(一)

  • 新建 java类 (用于实现我们功能的类)
    uniapp 原生安卓开发插件(module),以及android环境本地调试(一)
    uniapp 原生安卓开发插件(module),以及android环境本地调试(一)
    去到 AndroidManifest.xml 文件中配置(必须项)
 <application>
        <activity android:name="com.example.uniplugin_sunmi.ScanCode"
            android:theme="@android:style/Theme.DeviceDefault.Light.NoActionBar"></activity>
    </application>

uniapp 原生安卓开发插件(module),以及android环境本地调试(一)
编写模块类(也就是我们新建的类名),编写测试代码
注意:继承UniModule,并添加@UniJSMethod注解(哪个功能方法需要抛出给uniapp使用就加上这个注解

package com.example.uniplugin_sunmi;

import com.alibaba.fastjson.JSONObject;
import io.dcloud.feature.uniapp.annotation.UniJSMethod;
import io.dcloud.feature.uniapp.bridge.UniJSCallback;
import io.dcloud.feature.uniapp.common.UniModule;

// 一定要继承UniModule
public class ScanCode extends UniModule {
    // 使用UniJSMethod注解,才能使用js调用
    @UniJSMethod(uiThread = true)
    public void  add (JSONObject json, UniJSCallback callback) {
        final int a = json.getInteger("a");
        final int b = json.getInteger("b");
        callback.invoke(new JSONObject() {{
            put("code", 0);
            put("result", a + b);
        }});
    }
}

编写结束

  • 在build.gradle(app)中添加uniapp-插件,点击sync now
    uniapp 原生安卓开发插件(module),以及android环境本地调试(一)
  • 在dcloud_uniplugin.json中新增插件,注意:插件命名会在uniapp中引用
    uniapp 原生安卓开发插件(module),以及android环境本地调试(一)
  • 给模块打包成插件aar文件
    uniapp 原生安卓开发插件(module),以及android环境本地调试(一)
    如果没有找到assmbleRelese按钮,可以进行设置
    uniapp 原生安卓开发插件(module),以及android环境本地调试(一)
    uniapp 原生安卓开发插件(module),以及android环境本地调试(一)
    打完包即可在build中查看到aar文件
    uniapp 原生安卓开发插件(module),以及android环境本地调试(一)

5、在uniapp中使用

  • 创建插件目录,配置刚打好的插件
    uniapp 原生安卓开发插件(module),以及android环境本地调试(一)
    uniapp 原生安卓开发插件(module),以及android环境本地调试(一)
    uniapp 原生安卓开发插件(module),以及android环境本地调试(一)
    package.json 配置
{
	"name": "sunmi-scan",
	"id": "sunmi-scan",
	"version": "1.0.0",
	"description": "订单的",
	"_dp_type": "nativeplugin",
	"_dp_nativeplugin": {
		"android": {
			"integrateType": "aar",
			"plugins": [{
				"type": "module",
				"name": "sunmi-scan",
				"class": "com.example.uniplugin_sunmi.ScanCode"
			}],
			 "minSdkVersion": "19"
		}
	}
}

uniapp 原生安卓开发插件(module),以及android环境本地调试(一)

  • 使用插件
    uniapp 原生安卓开发插件(module),以及android环境本地调试(一)
    uniapp 原生安卓开发插件(module),以及android环境本地调试(一)

添加本地插件

  • 使用插件
    在页面中引入
<template>
  <view class="content">
    <image class="logo" src="/static/logo.png"></image>
    <view class="text-area">
      <button @click="test">测试</button>
    </view>
  </view>
</template>

<script setup lang="ts">
  const test= ()=>{
    // 引入自定义插件
    const testModule = uni.requireNativePlugin('sunmi-scan')
    // 使用module的add方法
    testModule.add({
      a:1,b:3
    },e=>{
      uni.showToast({
        title:JSON.stringify(e),
        icon:'none'
      })
    })
  }
</script>

最后:打包成为基座进行测试(最主要的)文章来源地址https://www.toymoban.com/news/detail-461289.html

到了这里,关于uniapp 原生安卓开发插件(module),以及android环境本地调试(一)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • uniapp 集成 Android Studio 使用原生插件

    前期工作 下载 Android Studio 下载 HbuilderX 对应的 App离线SDK 准备集成 打开选中项目 选中其中的模块文件夹 在该文件夹下的libs目录下添加需要使用的jar包(一般是第三方设备平台提供) 在该文件夹下的srcmainjava下的TestModule.java中写相应的业务实现 需要注意main文件夹下的Andr

    2024年02月15日
    浏览(10)
  • android原生开发教程,安卓开发入门到精通

    建造者模式: 观察者模式: 代理模式: 门面模式: 单例模式: 生产者消费者模式: 这个通过对比来描述,比如面向对象和面向过程的对比,针对这两种思想的对比,还可以举个开发中的例子,比如播放器的实现,面向过程的实现方式就是将播放视频的这个功能分解成多个过

    2024年04月11日
    浏览(13)
  • 【UniAPP X快速上手】如何使用UniAPPX开发一个原生安卓商城

    uni-app x,是下一代 uni-app,是一个跨平台应用开发引擎。 uni-app x 没有使用js和webview,它基于 uts 语言。在App端,uts在iOS编译为swift、在Android编译为kotlin,完全达到了原生应用的功能、性能。 更重要的是,UniAPP X未来也会支持鸿蒙 ,这里引用DCloud社区的官方答复 DCloud有资源第

    2024年02月21日
    浏览(9)
  • uniapp原生插件开发调用第三方SDK

    uniapp安卓官方SDK Android 离线SDK - 正式版 | uni小程序SDK 官方uni原生插件开发教程(android)网址: 简介 | uni小程序SDK 第一步,开发环境的准备 下载uniapp安卓官方SDK待后面使用,解压完成如下图所示。 JAVA环境 jdk,打开cmd输入java -version查看自己的jdk版本,官方文档中提示jdk版本应

    2024年02月15日
    浏览(10)
  • uniapp开发安卓App注意事项(HTML5+规范 plus调用安卓原生能力:广播,扫描,相机等)

    使用安卓调试基座进行调试大大降低了uniapp开发安卓app的门槛 安卓开发经常需要调用到安卓原生的api,例如广播,扫码,相机等等,uniapp内置了App端的HTML5+规范,可以使用js直接调用丰富的原生能力。例如在安卓中调用原生的激光扫描能力: 该plus对象便是uniapp内置的HTML5+规

    2024年03月19日
    浏览(13)
  • 原生Android与uniapp开发的H5混合开发

    vue版本选择2.0  记住一点,打包H5前修改配置,否则在Android中打开会白屏,修改方式如下 打包成H5,打包后可以在浏览器打开确保有内容 assets文件夹没有就自己建 xml布局文件处加入一个webview标签 Activity的 onCreate周期加入如下代码 运行项目就可以看到uniAPP的页面了

    2024年02月21日
    浏览(4)
  • uni-app之android原生插件开发

    一 插件简介 1.1 当HBuilderX中提供的能力无法满足App功能需求,需要通过使用Andorid/iOS原生开发实现时,可使用App离线SDK开发原生插件来扩展原生能力。 1.2 插件类型有两种,Module模式和Component模式 Module模式:能力扩展,无嵌入窗体的UI控件。大部分插件都是属于此类,比如调

    2024年02月07日
    浏览(8)
  • uniapp开发云打包详细流程(包含安卓Android和苹果IOS)

    Hbuilder在菜单栏选择“发行”,选择“原生App-云打包”,使用云打包不需要学习Android Studio的使用,节省开发时间,但是云打包需要排队(排队人数越多等待时间越长),每个账号每天限制打包5次。                     1.2.1、安卓包名 在项目中打开manifest.json文件,基础配

    2024年02月08日
    浏览(20)
  • 【TTS】uni-app语音播报app开发 / MT-TTS安卓原生自带语音合成插件(免费无限次)

    TTS 是 Text To Speech 的缩写,即“ 从文本到语音 ”,是人机对话的一部分,让机器能够说话。TTS是语音合成应用的一种。 在程序开发中,有很多TTS的插件,比如百度,讯飞,等等,但是大部分产品都不是完全免费无限制次数调用的且需在线使用 本篇文章介绍一种免费快捷且可

    2023年04月15日
    浏览(18)
  • 安卓开发面试问题回答技巧,腾讯竟然又偷偷开源了一套Android原生UI框架

    偶然看到知乎的内推帖,投了个简历,下午hr姐姐call我,安排面试选在3天后,然而又要笔试阿里,所以没怎么复习。 8点起床,9点过比较紧张的去了创业园,感觉知乎氛围很好,在那等了一小会,有前台大叔给你倒水。 应该是个参加工作不久的研究僧师兄,出了一道算法题

    2024年03月12日
    浏览(24)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包