文档章节

iOS开发之BusinessChat框架使用

珲少
 珲少
发布于 2018/10/12 15:02
字数 737
阅读 74
收藏 1
iOS

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

iOS开发之BusinessChat框架使用

      BusinessChat是iOS11.3后引入的新框架,这个框架配合iMessage应用将商家与用户更加紧密的结合起来,并且为商家提供了另外一种非常方便的客服系统。

      我们知道,在iOS10中新引入了iMessage扩展,iMessage扩展除了丰富了表情包外,开发者也可以开发一些功能独立的iMessage应用,关于iMessage扩展的相关应用,如下博客中有着完整的介绍。

https://my.oschina.net/u/2340880/blog/749331

     随着iMessage扩展使得iMessage功能的越来越强大,其为用户提供能力和与第三方APP交互能力也越来越强,BusinessChat框架是提供给应用程序调用iMessage来与商家的客服系统联系的功能框架。

    许多服务类的应用程序都有客服系统,例如当用户使用电商类应用程序时通常会需要联系商家。要使用BusinessChat相关功能,首先需要注册成为Apple商家,在如下网站进行商家注册:

https://register.apple.com

界面如下:

使用AppleID登录后,填写必要的商家信息和成员信息,即可进行申请,提交申请后,需要Apple进行审核,如果审核通过会分配商户ID给我们,我们需要使用这个商户ID来进行我们的开发。

    BusinessChat框架中有两个类:BCChatButton类和BCChatAction类,BCChatButton类是单纯的UI支持类,它提供了同意的联系客服按钮样式,BCChatAction类用来处理行为逻辑。示例代码如下:

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    BCChatButton * btn = [[BCChatButton alloc]initWithStyle:BCChatButtonStyleDark];
    btn.frame = CGRectMake(50, 100, 200,100);
    [btn addTarget:self action:@selector(click) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:btn];
}

-(void)click{
    NSLog(@"message");
    [BCChatAction openTranscript:@"8d7f4b79-bf77-45ab-86b5-b74f56d47737" intentParameters:@{BCParameterNameIntent:@"buy",BCParameterNameGroup:@"custom",BCParameterNameBody:@"Hello World"}];
}


@end

运行代码,按钮样式如下图:

点击按钮后,会调起iMessage应用,用户可以直接与商户进客服行联系。

      BCChatButton是一个纯UI的按钮类,其继承自UIControl,使用方式和正常的UIButton一样,需要注意,其中并没有封装交互逻辑,按钮的触发事件需要开发者自己定义。BCChatAction来进行交互逻辑的处理,这个类中只有一个方法,如下:

/*
businessIdentifier为商户ID
intentParameters为意图参数字典,其中可定义键值如下:
BCParameterNameIntent 定义意图 用户发送消息时可以让商户更清楚用户的问题领域
BCParameterNameGroup 定义组 帮助商户将问题分发明确的组 
BCParameterNameBody 信息内容
*/
+ (void)openTranscript:(NSString *)businessIdentifier
      intentParameters:(NSDictionary<BCParameterName, NSString *> *)intentParameters;

 

© 著作权归作者所有

珲少

珲少

粉丝 891
博文 395
码字总数 478712
作品 0
上海
程序员
私信 提问
Xamarin iOS开发实战第1章使用C#编写第一个iOS应用程序

Xamarin iOS开发实战第1章使用C#编写第一个iOS应用程序 C#原本是用来编写Windows以及Windows Phone的应用程序。自从Xamarin问世后,C#的作用就发生了很大的变化。它不仅可以编写关于Windows...

大学霸
2014/10/23
999
0
谷歌Flutter跨平台应用开发SDK迎来首个发行预览版本

谷歌Flutter跨平台应用开发SDK迎来首个发行预览版本 2018-06-22 12:26编辑: 枣泥布丁分类:程序人生来源:程序师 跨平台Google Flutter预览版本 招聘信息: 图像处理及模式识别工程师 C/C+...

枣泥布丁
2018/06/22
0
0
2018 iOS 面试题大全(补充完整版)

原文地址:2018 iOS 面试题大全 由于原作者并没有继续更新,这里我转过来继续更新下 这个栏目将持续更新--请iOS的小伙伴关注! 1、iOS 应用导航模式有哪些? 2、iOS 中持久化方式有哪些? 3、...

Theendisthebegi
2018/11/15
0
0
OSChina 技术专题之 Swift 苹果全新开发语言

Swift 是苹果新推出的编程语言,专门针对 OS X 和 iOS 的应用开发。Swift 在各个方面优于 Objective-C,也不会有那么多复杂的符号和表达式。同时,Swift 更加快速、便利、高效、安全。除此之...

OSC编辑部
2014/11/10
4.3K
4
iOS游戏框架Sprite Kit基础教程第1章编写第一个Sprite Kit程序

iOS游戏框架Sprite Kit基础教程第1章编写第一个Sprite Kit程序 程序是为了实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合。本章将以编写第一个Sprite Kit程序为主线,为开发...

大学霸
2014/12/23
438
0

没有更多内容

加载失败,请刷新页面

加载更多

如何管stderr,而不是stdout?

我有一个要写入信息的程序stdout和stderr ,我需要grep通过什么是未来标准错误 ,而忽视标准输出 。 我当然可以分2步完成: command > /dev/null 2> temp.filegrep 'something' temp.file...

技术盛宴
25分钟前
4
0
centos7.5上通过docker安装并运行mysql5.7

1. docker pull mysql:5.7 2. docker run --name mysql5.7 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7...

Ryub
28分钟前
6
0
什么是比赛条件?

在编写多线程应用程序时,遇到的最常见问题之一是竞争条件。 我对社区的问题是: 什么是比赛条件? 您如何检测到它们? 您如何处理它们? 最后,如何防止它们发生? #1楼 当设备或系统试图同...

javail
40分钟前
6
0
SpringMVC源码分析-DispatcherServlet-init方法分析

上一篇:SpringMVC源码分析-DispatcherServlet实例化干了些什么 先吐槽一下。。。写了两小时的博客突然被俺家小屁孩按了刷新,东西不见了,建议OSCHINA能够自动定时保存啊。让我先安静一下。...

特拉仔
47分钟前
7
0
python协程 生成器

协程,又称微线程,纤程。英文名Coroutine。 线程是系统级别的它们由操作系统调度,而协程则是程序级别的由程序根据需要自己调度。在一个线程中会有很多函数,我们把这些函数称为子程序,在子...

沙门行道
58分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部