uni-app与原生插件混合开发调试1-环境准备

uni-app与原生插件混合开发调试系列文章分为3篇,分别详细讲了《环境准备》、《搭建uni-app本地开发调试环境》和《安卓原生插件开发调试和打包》,3篇文章完整详细地介绍了“从环境安装配置到本地开发调试到原生插件打包”整个流程。

相关名词和概念解释

安卓AndroidManifest.xml配置详解AndroidManifest.xml详解 - 简书

uniapp简称uni,是dcloud旗下的产品,基于H5和vue,可用于开发各平台小程序,并且可以将开发的小程序跨平台打包,支持Android和iOS。

HBuilderX,H是HTML的首字母,Builder是构造者,X是HBuilder的下一代版本。我们也简称HX。 

HX是轻如编辑器、强如IDE的合体版本。

App离线SDK

是dcloud提供的用于在本地打包的SDK,其本质就是一个Android工程,下载之后导入到Android studio,再将uni-app打包的本地资源包复制到离线SDK工程,依托离线SDK运行。离线SDK实际上就是uni-app的套壳。

此外,离线SDK的作用是为了扩充uni-app的短板,很多uni-app无法直接调用的原生接口,可以用App离线SDK来开发原生插件,以此扩展原生能力。

本文参考文档:开发者须知 | uni小程序SDK

关于Android studio本地调试

uni-app开发的应用也可以用Android studio本地调试,步骤是先用hbuilderx把uni-app源码本地打包,这个包不是apk包,而是安卓的资源包,再将安卓的资源包整个目录copy到Android studio中的安卓工程的app模块内,再运行app模块。

原理:hbuilderx把uni-app源码打本地包后,html和js等前端代码会生成能够在jsvm环境运行的js源码。

环境准备

  • JAVA环境 jdk1.8

说明:uni-app离线SDK基于Java8,所以JDK1.8是整个环境的基础。

说明:开发Android应用的IDE。

说明:App离线SDK指的是开发uni-app应用的SDK,不是Android compileSdk,本质是一个Android工程,用于用于套壳运行uni-app的Android工程。

说明:HBuilderX即可以用于uni-app打本地Android资源包、APK云打包,也可以当作uni-app的编辑器。

条件准备

申请离线appkey

申请离线appkey包括两部分:生成签名证书 和 申请离线appkey

1、生成签名证书

dcloud官方文档:https://ask.dcloud.net.cn/article/35777

签名证书用jdk自带的工具keytool生成:

keytool -genkey -alias androidPluginKey -keyalg RSA -keysize 2048 -validity 36500 -keystore androidPluginKey.keystore

  • androidPluginKey是证书别名,可修改为自己想设置的字符,建议使用英文字母和数字
  • androidPluginKey.keystore是证书文件名称,可修改为自己想设置的文件名称,也可以指定完整文件路径
  • 36500是证书的有效期,表示100年有效期,单位天,建议时间设置长一点,避免证书过期

回车后提示:

Enter keystore password:  //输入证书文件密码,输入完成回车  
Re-enter new password:   //再次输入证书文件密码,输入完成回车  
What is your first and last name?  
  [Unknown]:  //输入名字和姓氏,输入完成回车  
What is the name of your organizational unit?  
  [Unknown]:  //输入组织单位名称,输入完成回车  
What is the name of your organization?  
  [Unknown]:  //输入组织名称,输入完成回车  
What is the name of your City or Locality?  
  [Unknown]:  //输入城市或区域名称,输入完成回车  
What is the name of your State or Province?  
  [Unknown]:  //输入省/市/自治区名称,输入完成回车  
What is the two-letter country code for this unit?  
  [Unknown]:  //输入国家/地区代号(两个字母),中国为CN,输入完成回车  
Is CN=XX, OU=XX, O=XX, L=XX, ST=XX, C=XX correct?  
  [no]:  //确认上面输入的内容是否正确,输入y,回车  

Enter key password for <testalias>  
        (RETURN if same as keystore password):  //确认证书密码与证书文件密码一样(HBuilder|HBuilderX要求这两个密码一致),直接回车就可以

以上命令运行完成后就会生成证书,路径为“C:\Users\\androidPluginKey.keystore”。

查看证书信息

可以使用以下命令查看:

keytool -list -v -keystore androidPluginKey.keystore Enter keystore password: //输入密码,回车

会输出以下格式信息:

复制代码Keystore type: PKCS12    
Keystore provider: SUN    

Your keystore contains 1 entry    

Alias name: test    
Creation date: 2019-10-28    
Entry type: PrivateKeyEntry    
Certificate chain length: 1    
Certificate[1]:    
Owner: CN=Tester, OU=Test, O=Test, L=HD, ST=BJ, C=CN    
Issuer: CN=Tester, OU=Test, O=Test, L=HD, ST=BJ, C=CN    
Serial number: 7dd12840    
Valid from: Fri Jul 26 20:52:56 CST 2019 until: Sun Jul 02 20:52:56 CST 2119    
Certificate fingerprints:    
         MD5:  F9:F6:C8:1F:DB:AB:50:14:7D:6F:2C:4F:CE:E6:0A:A5    
         SHA1: BB:AC:E2:2F:97:3B:18:02:E7:D6:69:A3:7A:28:EF:D2:3F:A3:68:E7    
         SHA256: 24:11:7D:E7:36:12:BC:FE:AF:2A:6A:24:BD:04:4F:2E:33:E5:2D:41:96:5F:50:4D:74:17:7F:4F:E2:55:EB:26    
Signature algorithm name: SHA256withRSA    
Subject Public Key Algorithm: 2048-bit RSA key    
Version: 3

其中证书指纹信息(Certificate fingerprints):

  • MD5
  • SHA1
  • SHA256

注意:keytool工具生成的androidPluginKey.keystore 文件就是所谓的“证书”。

 申请appkey

申请appkey在dcloud官网申请,需要注册账号并实名认证,然后登录到开发者中心:

点击【我的应用】列表中的【应用名称】=》各平台管理=》新增:

填写包名、SHA1、MD5等:

包名(根据自己需要配置):com.xxx.xxx

填写完后【提交】,dcloud会在线生成appkey,回到【各平台信息】列表,点击查看:

如何获取已安装安卓app的签名

 参考:Android平台签名证书(.keystore)生成指南 - DCloud问答

  • 12
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
uni-app本身没有提供原生的语音识别插件,但你可以通过uni-app原生插件扩展功能来实现语音识别。具体的步骤如下: 1. 首先,确定你想要使用的语音识别插件。在uni-app中,你可以选择使用第三方语音识别插件,例如科大讯飞、百度语音等。你需要根据插件的文档进行相应的配置和集成。 2. 在uni-app项目中创建一个原生插件的目录。你可以在项目根目录下的`uni_modules`目录中创建一个新的目录,例如`uni-plugin-voice`。 3. 在插件目录中创建一个`manifest.json`文件,用于配置插件信息。在`manifest.json`中,你需要指定插件的名称、版本号、依赖等信息。具体的配置可以参考uni-app插件开发文档。 4. 在插件目录中创建一个原生代码的目录,例如`ios`和`android`。 5. 在原生代码目录中,根据平台分别实现对应的语音识别功能。你可以使用iOS和Android各自的语音识别API,或者调用第三方语音识别SDK来实现功能。具体的实现方式会因为使用的语音识别插件而有所不同,你需要参考对应插件的文档进行具体操作。 6. 编译和集成原生插件。根据插件的要求,进行相应的编译和集成操作。对于iOS平台,你需要将插件目录添加到Xcode项目中,并配置相应的依赖关系。对于Android平台,你需要将插件目录添加到Android Studio项目中,并配置相应的依赖关系。 7. 在uni-app的页面中使用语音识别功能。你可以在表单输入框的组件中添加一个触发语音识别的按钮或图标,并在对应的事件处理函数中调用原生插件提供的接口进行语音识别。 请注意,以上步骤是一个大致的流程,具体的实现方式和步骤可能会因为你选择的语音识别插件而有所不同。在实际操作中,你需要根据所用插件的文档和示例代码进行相应的调整和修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值