iOS开发之BusinessChat框架使用 原

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;

(adsbygoogle = window.adsbygoogle || []).push({}); function googleAdJSAtOnload() { var element = document.createElement("script"); element.src = "//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"; element.async = true; document.body.appendChild(element); } if (window.addEventListener) { window.addEventListener("load", googleAdJSAtOnload, false); } else if (window.attachEvent) { window.attachEvent("onload", googleAdJSAtOnload); } else { window.onload = googleAdJSAtOnload; }

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏编程微刊

微信小程序常见的UI框架/组件库总结

9244
来自专栏刘勇刚的专栏

鸟瞰前端 , 再论性能优化

从事前端有 6 年+的时间了,我现在将自己这些年的一个心得体会来个系统性的梳理写成一篇关于性能优化的主题文章,希望对大家有点帮助,也欢迎大家提出各种意见和建议。

5071
来自专栏小程序·云开发专栏

小程序的底层框架

原文链接:https://godbasin.github.io/2018/09/02/wxapp-technology-architecture/

2952
来自专栏极客猴

搭建手机抓包环境

智能手机的普及,这使得移动互联网成为另一个流量巨头。越来越多的公司也会转而直接提供 App 来展示内容。例如微信以及其生态(微信公众号、小程序)、抖音等。这也说...

3282
来自专栏Youngxj

YoungxjTools全新上线

1494
来自专栏移动开发之家

移动端跨平台开发的深度解析

 跨平台一直是老生常谈的话题,cordova、ionic、react-native、weex、kotlin-native、flutter等跨平台框架的百花齐放,...

1314
来自专栏星流全栈

开发 React Native 前必须知道的几件事

1513
来自专栏Fred Liang

做好 Loading 设计

在前端产品中,我们无法保证用户的网络情况,也很难去从最末端节点优化自有网络部署。 这些或多或少地都会反映到用户端的加载延迟。

1372
来自专栏极客猴

分享一个爬取网站的小技巧

有时候,我们很想爬取一个网站的数据。如果 PC 端的网页的反爬机制太强,我们可以换个思路。现在很多网站为了满足手机浏览器能正常访问的需求,都会推出手机版的网页。...

6492
来自专栏吴裕超

浅析前端渲染与服务端渲染

背景知识:   「后端渲染」指传统的 ASP、Java 或 PHP 的渲染机制;   「前端渲染」指使用 JS 来渲染页面大部分内容,代表是现在流行的 SPA ...

1K4

扫码关注云+社区

领取腾讯云代金券