简介

华为服务号(Business Touch Kit)提供给商家对应的华为服务号,让用户快速发现商家服务,建立用户与商家的互动连接。为您提供华为统一的商家服务号中心,通过服务分发,用户互动连接,多样化的营销工具等,促进商家的商业闭环。
开发者通过在App 端进行接口的调用,与云侧的服务商家后台获得交互。
为此,开发者需要:

您将建立什么

在这个Codelab中,你将使用已经创建好的Demo Project实现对华为服务号的API调用,通过Demo Project你可以体验到:

您将会学到什么

硬件要求

软件要求

需要的知识点

集成HUAWEI HMS Core能力,需要完成以下准备工作:

  1. 创建应用
  2. 创建Android Studio工程
  3. 生成签名证书
  4. 生成签名证书指纹
  5. 配置签名证书指纹
  6. 添加应用包名并保存配置文件
  7. 配置Maven仓地址及AGC gradle插件
  8. 在Android Studio配置签名文件

具体操作,请按照《HUAWEI HMS Core集成准备》中详细说明来完成。

添加当前应用的AppGallery Connect配置文件

  1. 登录AppGallery Connect网站,点击"我的项目"。
  2. 在项目列表中找到您的项目,在项目中点击需要集成HMS Core SDK的应用。
  3. 在"项目设置 > 常规"页面的"应用"区域,点击"agconnect-services.json"下载配置文件。
  4. 将"agconnect-services.json"文件拷贝到应用级根目录下。

添加Maven仓

步骤 1 在"allprojects > repositories"中配置华为服务号 SDK的Maven仓地址。
步骤 2 在"buildscript > repositories"中配置华为服务号 SDK的Maven仓地址。

buildscript { repositories { google() jcenter() maven { url 'https://developer.huawei.com/repo/' } } dependencies { classpath 'com.android.tools.build:gradle:3.4.1' } } allprojects { repositories { google() jcenter() maven {url 'https://developer.huawei.com/repo/'} } }

添加编译依赖

步骤 1 打开应用的build.gradle文件。
步骤 2 在build.gradle文件中增加如下配置。

compileOptions { sourceCompatibility = 1.8 targetCompatibility = 1.8 }

步骤 3 在"dependencies"中添加编译依赖。

dependencies { implementation "com.huawei.hms:hbm:{version}" }

步骤 4 添加AGC插件配置。请根据实际情况选择:
方式一:在文件头部声明下一行添加如下配置。

apply plugin: 'com.huawei.agconnect'

方式二:在plugins中添加如下配置。

plugins { id 'com.android.application' //添加如下配置 id 'com.huawei.agconnect' }

同步工程

在完成以上的配置后,点击Sync Now,完成"build.gradle"文件的同步,将相关依赖下载到本地。

整个工程的结构如下图:

新建工程

在Android Studio里新建工程,可参见创建Android Studio工程

新建Activity

1.获取HbmSdkService单例(设计模式:单例模式,提供了一种访问类的唯一的对象的方式,可以直接访问,不需要实例化该类的对象)。使用如下。

HbmSdkService.getInstance();

2.初始化HbmSdkService单例。

HbmSdkService.getInstance().init(this);

3.调用接口,同意华为服务号协议。

HbmSdkService.getInstance().enableHbmAgreement(result -> { if (result.getHbmCode().getCode() == HbmCode.CODE_SUCCESS) { // 成功同意协议 ... } else { // 同意协议失败 ... } });

4.调用接口,打开Channel接口。

//flag为true打开通道,flag为false关闭通道 HbmSdkService.getInstance().enableChannel(flag, result -> { if (result.getHbmCode().getCode() == HbmCode.CODE_SUCCESS) { // 打开/关闭通道回调结果成功 ... } else { // 打开/关闭通道回调结果失败 ... } });

5.使用各项接口实现业务,使用如下单例调用各类接口。

HbmSdkService.getInstance().xxx;

a)调用startHbmActivity接口,打开商家服务号主页。

//HbmIntent设置为HbmIntent.ACTION_TO_PUB, //HbmIntent.KEY_PUB_ID 商家服务号 //HbmIntent.KEY_PUB_NAME 商家服务号名称,选填 HbmSdkService.getInstance().startHbmActivity((Activity) context, HbmIntent.create(context, HbmIntent.ACTION_TO_PUB) .putExtra(HbmIntent.KEY_PUB_ID, pubId) .putExtra(HbmIntent.KEY_PUB_NAME, pubName), result -> { if (result.getHbmCode().getCode() == HbmCode.CODE_SUCCESS) { //打开服务号主页成功 ... } else{ //打开服务号主页失败 ... } });

b)打开专辑页与打开服务号主页类似,只需将HbmIntent设置为HbmIntent.ACTION_TO_ALBUM,同时需要传递HbmIntent.KEY_ALBUM_ID作为跳转参数。
c)打开商家消息会话、服务主题、设置页、全部服务动态页面、用户协议等也与上面的方法类似。只需将HbmIntent设置为对应值,不同的是不需要传递额外字段。
d)关注、取关商家。pubId代表商家服务号的id号。

//关注商家,建立关注关系 HbmSdkService.getInstance().followPub(pubId, listener); //取关商家,取消关注关系 HbmSdkService.getInstance().unFollowPub(pubId, listener);

e)添加、移除通知。

//添加通知,iNotify:待添加的INotify对象,notifyFlag:待添加的通知类型标记。 HbmSdkService.getInstance().addNotify(iNotify, notifyFlag); //移除通知,iNotify:待移除的INotify对象 HbmSdkService.getInstance().removeNotify(iNotify);

编译、加载、调试

完成上述代码后,手机连上电脑。使用Android Studio自带的Gradle编译工具,双击installDebug,即可安装Demo。

运行结果

运行结果如图:

接口调用结果如图:

干得好,您已经成功完成了Codelab并学到了:

您可以阅读下面链接,了解更多相关的信息。
相关文档
本Codelab中所用demo源码下载地址如下:

下载 source code

Code copied