危险

为之则易,不为则难

0%

slwl-course06

uni-app(神领物流)项目实战 - 第6天

学习目标:

  • 知道如何生成 Android 证书

  • 知道如何配置 App 端地图服务平台

  • 知道如何实现实人认证的功能

  • 知道如何实现一键登录的功能

  • 知道如何实现消息推送的功能

一、自定义调试基座

在使用 HBuilderX 运行到 App 端时,官方提供的 Android 包(标准基座)来对项目进行打包,标准基座提供了日常开发的一系列功能,能够满足大部分日常的业务开发,但是当涉及到一些特殊需求时时就需要自定义调试基座,如消息推送、一键登录、人脸识别等。

生成自定义基座时及正式发布 App 应用时需要使用自有证书,然后再由 HBuilderX 提供的云打包服务生成安卓 APK 安装程序。

1.1 安卓证书

安卓证书是一种数字签名技术,安卓系统要求安装到系统上的 App 必须要使用证书进行签名。签名相当于是 App 的身份证书,该证书能够证明 App 的归属者及合法性。

安卓证书的生成规则是由 Google 公司规定的,由开发者自助生成且免费。

1.1.1 JRE 环境
  1. 安装 JRE 环境

  1. 配置环境变量

注:大家在安装 JRE 时默认安装到了 C:\Program Files\Java\jre-1.8\bin 目录当中,因此环境变量添加的路径也是该目录对应的路径。

  1. 验证 JRE 是否安装成功
1
2
# 打开命令行窗口
java -version

1.1.2 生成证书

HBuilderX 给出了证书生成的步骤说明:

1
2
# 打开命令行工具
keytool -genkey -alias 证书别名 -keyalg RSA -keysize 2048 -validity 36500 -keystore 证书名字.keystore
  • testalias 是证书别名,可修改为自己想设置的字符,建议使用英文字母和数字
  • test.keystore 是证书文件名称,可修改为自己想设置的文件名称,也可以指定完整文件路径
  • 36500 是证书的有效期,表示100年有效期,单位天,建议时间设置长一点,避免证书过期

回车后会提示:

!!!大家务必记住证书别名和密码!!!

创建完证书后给出了一个警告,复制警告中的代码到命令行中执行

1
2
# 自已复制自已提示出来的警告代码
keytool -importkeystore -srckeystore test.keystore -destkeystore test.keystore -deststoretype pkcs12

此时在执行命令的目录中就生成了一个 xxxxx.keystore 文件,即安卓证书了,同时还有一个 xxxxx.keystore.old 的备份文件,这个文件执行警告代码之前的证书文件,我们将这两个文件放在一起保管就可以了。

1.1.3 云端证书

云端证书是由 DCloud 平台提供的生成证书的服务,登录到 DCloud 开者中心平台

1.2 云打包

生成好的证书即可以用来打正式的 APK 包,也可以用于自定义调试基座。

1.2.1 自定义基座

1.2.2 正式打包

正式包与自定义调试基座的区别在于,自定义调试基座用于开发环境,正式包用于上线到安卓应用商店,如360、小米、华为应用商店等。

注意:正式包与自定义调试基座的包名要一致!

1.3 地图服务

在 uni-app 中使用地图服务时,需要注意兼容性:

地图服务商 App H5 小程序
高德
Google 仅nvue页面
腾讯

H5 和小程序平台咱们选择的是腾讯地图服务平台,App 咱们选择高德地图服务平台,自行注册高德地图开发者账号并创建应用。

1.3.1 创建应用Key

  • PackageName 是在自定义调试基座和正式包时定义的包名
  • SHA1 值的获取方式如下所示
1
2
# 找到你保管证书的目录中,打开命令行工具
keytool -list -v -keystore 你的证名名.keystore

1.3.2 配置神领物流

把在高德地图创建的 Key 填写到图示位置,IOS 的 key 可以省略也可以随便填写一个,然后重新打包自定义基座,打包后运行 App 项目,验证上报异常位置时是否可以打开地图。

注意:没有配置 key 的情况下打包自定义基座运行,打开地图时会报如下错误:

二、uniCloud 开发

uniCloud 是 DCloud 联合阿里云、腾讯云,为开发者提供的基于 serverless 模式和 js 编程的云开发平台。提供了许多高效实用的业务解决方案,如消息推送、一键登录、实人认证等。

注:在下列的功能开发过程中所应用到的证书即可以是 DCloud 平台的云端证书,也可以是本地自定义生成的证书,无论选择哪一种切忌不要混用!作为新手建议大家就使用 DCloud 平台的云端证书。

2.1 消息推送

消息推送是服务端管理后台主动向安装了 App 的用户发送消息功能,分为离线推送和在线推送两种。

2.1.1 应用信息

完善平台信息,填写 MD5、SHA1、SHA256 信息。

IOS 平台信息也需要完善,只需要填写一个包名就行

然后找到 uniPush 选择 2.0(支持全端推送)

2.1.2 离线推送

离线推送即厂商推送设置,这种方式不需要在 App 中添加代码(不引入 SDK)即可实现消息推送的功能。这种方式的弊端是要为不同品品牌的手机分别设置参数。

以华为手机为例,首先注册成为华为开发者账号,需要完成身份认证,华为手机用户可以使用自身的华为账号登录。

个推服务平台文档说明

2.1.3 配置神领物流

配置完成后重新打包。

2.1.4 发送消息

没有安卓机的同学可以使用 WeTest 平台提供的云手机进行测试,注意选择华为品牌的手机。

2.2 一键登录

2.3 实人认证