集成PPMessage网页聊天插件

使用 ‘网页聊天插件’的‘网站插件代码’ 集成 PPMESSAGE,即可以在您的网站显示 PPMESSAGE 的聊天图标。集成PPMessage 网页聊天组件后,您网站上的访客行为数据和消息都会发送给后台系统和座席人员,后台系统通过 PPMESSAGE 的各种核心组件进行数据获取和客户路由,将访客分配给选定的座席;座席也可以通过观察后台的客户浏览信息主动与访客发起会话。初始的网站插件代码如下:

<script> window.ppSettings = {app_uuid:'a600998e-efff-11e5-9d9f-02287b8c0ebf'};(function(){var w=window,d=document;function l(){var a=d.createElement('script');a.type='text/javascript';a.async=!0;a.charset='utf-8';a.src='https://ppmessage.cn/ppcom/assets/pp-library.min.js';var b=d.getElementsByTagName('script')[0];b.parentNode.insertBefore(a,b)}l();})();</script>

您只需将上面的代码嵌入到网站页面<head>与</head>标签之间即可实现与PPMessage的集成。可以通过更改‘网页插件代码’来实现对 PPMESSAGE 聊天图标和聊天对话窗口的更多控制。您可以通过”网页聊天链接“按钮随时查看聊天组件外观和工作状态。

美化聊天界面

让我们把插件代码的格式变的好看些:

<script> 
window.ppSettings = {
  app_uuid:'a600998e-efff-11e5-9d9f-02287b8c0ebf'
};
(function(){
  var w=window,d=document;
  function l() {
    var a=d.createElement('script');
    a.type='text/javascript';
    a.async=!0;
    a.charset='utf-8';
    a.src='https://ppmessage.cn/ppcom/assets/pp-library.min.js';
    var b=d.getElementsByTagName('script')[0];
    b.parentNode.insertBefore(a,b)
  }
  l();
})();
</script>

改变聊天按钮的位置

默认情况下聊天按钮的位置在整个网页的右下角,改变聊天按钮的位置需要在 ppSettings 中增加一些控制信息:

<script> 
window.ppSettings = {
  app_uuid:'a600998e-efff-11e5-9d9f-02287b8c0ebf',
  view: {
    launcher_is_show: true,
    launcher_bottom_margin: '20px',
    launcher_right_margin: '30px',
    launch_style: {
      mode: 'normal',
      position:'right',
      bottom: 95
    }
  }
};
(function(){
  var w=window,d=document;
  function l() {
    var a=d.createElement('script');
    a.type='text/javascript';
    a.async=!0;
    a.charset='utf-8';
    a.src='https://ppmessage.cn/ppcom/assets/pp-library.min.js';
    var b=d.getElementsByTagName('script')[0];
    b.parentNode.insertBefore(a,b)
  }
  l();
})();
</script>

这些控制信息都是默认值,就是说不控制就是这样的。

其中 launcher_bottom_margin 和 launcher_right_margin 是用来控制聊天按钮距离浏览器窗口右边和底边的距离,更改着这个大小,看看效果吧。

这是把 launcher_bottom_margin 改成 300px,launcher_right_margin 改成 200px 的效果:

Screen Shot 2017-05-01 at 12.46.52 PM.png

不过仅仅改这个聊天图标的位置是不够的,PPMESSAGE 还不够聪明,点击聊天图标后,聊天对话窗口还是从默认的右下窗口弹出,这个效果可能不是你想要的:

image

聊天按钮出现在聊天窗口的中央了。 这时候需要继续更改窗口位置。

改变聊天窗口的位置

还是刚才的代码,控制聊天窗口位置的是 view.launch_style.position/bottom,分别表示聊天窗口是在浏览器的左侧还是右侧,以及距离浏览器的底边高度。如果应用自定义的 lauch_style,需要将 lauch_style.mode 指定为 custom。应用了自定义的风格,聊天对话的窗口弹出动画方式自动改变。position 可以取的值有 left/right/center; 如果 position 为 right 那么聊天窗口将从浏览器的右侧滑出,如果是 center,那么聊天窗口将从页面中间淡出,并且居于页面中间。

window.ppSettings = {
  app_uuid:'a600998e-efff-11e5-9d9f-02287b8c0ebf',
  view: {
    launcher_bottom_margin: '200px',
    launcher_right_margin: '30px',
    launcher_is_show: true,
    launch_style: {
      mode: 'custom',
      position:'right',
      bottom: 295
    }
  }
};
(function(){
  var w=window,d=document;
  function l() {
    var a=d.createElement('script');
    a.type='text/javascript';
    a.async=!0;
    a.charset='utf-8';
    a.src='https://ppmessage.cn/ppcom/assets/pp-library.min.js';
    var b=d.getElementsByTagName('script')[0];
    b.parentNode.insertBefore(a,b)
  }
  l();
})();

实验一下吧:

image

还有一个你想改变的,PPMESSAGE 也已经替你想到了,改变聊天按钮的图标。

隐藏聊天按钮的图标

隐藏聊天按钮的图标需要一个新的变量,launcher_is_show,赋予它 true 或者 false,即可控制显示聊天按钮或者隐藏聊天按钮,代码再 copy 一遍:

window.ppSettings = {
  app_uuid:'a600998e-efff-11e5-9d9f-02287b8c0ebf',
  view: {
    launcher_bottom_margin: '200px',
    launcher_right_margin: '30px',
    launcher_is_show: false,
    launch_style: {
      mode: 'custom',
      position:'right',
      bottom: 295
    }
  }
};
(function(){
  var w=window,d=document;
  function l() {
    var a=d.createElement('script');
    a.type='text/javascript';
    a.async=!0;
    a.charset='utf-8';
    a.src='https://ppmessage.cn/ppcom/assets/pp-library.min.js';
    var b=d.getElementsByTagName('script')[0];
    b.parentNode.insertBefore(a,b)
  }
  l();
})();

值得注意的是 launcher_is_show 不是必须与 custom mode 一起使用。

下面你一定需要打开关闭聊天窗口的接口了,因为聊天按钮已经被隐藏了,本来打开和关闭聊天窗口是它来完成的。

打开、关闭聊天窗口

调用 PP.show() 去打开聊天窗口,PP.hide() 去关闭聊天窗口,唯一需要注意的是一定要在 PP 对象已经存在的情况下使用。

执行效果如下:

image

开发者可以在处理指定元素的 click、hover 等事件的时机来调用 PP.show() 或者 PP.hide()。如果想了解 PPMESSAGE 的聊天窗口的打开状态可以用 PP.isOpen() 来检查,如果正在使用类似 angularjs 这样的前端框架,那么就可以用 ng-if/*ngIf 来绑定不同的界面操作按钮。

开发者也可以通过 onHide 和 onShow 来响应聊天窗口打开和关闭的事件,通过回调函数来控制自己的界面显示:


PP.onHide(function() {
});

PP.onShow(function() {
})

用程序发送一条消息给座席

首页 的产品价格中,PPMESSAGE 的来访者如果点击 ‘想了解更多’,网页程序就会自动冒充客户给座席发送一条消息,实现的方法是调用了 PPMESSAGE 的内部 API,这些 API 是不能够直接使用的,因为没有上下文;如果有像发消息这样的例外,一定会明确说明。


function send_message(_msg) {
  if (!window.PP) {
    return;
  }

  if (!window.PP.isOpen()) {
    window.PP.show()
  }

  setTimeout(function() {
    new window.PP.fn.Service.PPMessage.Builder(window.PP.fn.Service.PPMessage.TYPE.TEXT)
    .textMessageBody(_msg).build().send();
  }, 1000);
  return;

}

通过调用这个 send_message 函数就可以发送文本消息给客服。免去了客户手动输入。

响应来消息的事件

如果聊天按钮被隐藏,那么它本身所附加的功能和体验也一样被隐藏掉了。特别是当访客在你的网页浏览的时候,座席人员发送给访客的信息提示会看不见。

这时候前端开发者需要考虑处理 PPMESSAGE 的来消息事件,PPMESSAGE 通过创建一个 CustomEvent 来通知有新消息到来,这是 PPMESSAGE 的构建事件的过程:


var event = new CustomEvent("event:ppmessage:incoming-message", {
    user: { // 哪个座席发送的消息
          user_fullname:,
          user_icon:,
          uuid:,
   },

   messageType:, //TEXT/IMAGE
   message: {
     text: {body:,},
     image: {url:,}
   }

});

document.dispatchEvent(event);

开发者可以这样收到这个消息:


document.addEventListener("event:ppmessage:incoming-message", function(e) {
  console.log(e);                                                       
});

设置访客自定义字段值

在网页客户端可以为访客的自定义字段赋值,这样可以便于给访客分类,或者为流程将访客导向不同的座席做一些提前的数据准备。

这个接口必须在聊天组件已经成功加载的情况下执行

window.PP.setVar({"extra_field_TEXT_1": "Hello World"}, function() {
  //成功设置      
}, function() {
  //设置失败
});

上边的代码演示了给一个访客的自定义字段进行赋值,自定义字段的内部名称为 extra_field_TEXT_1,赋值为 Hello World,这个值可以在流程中读出,也可以显示在访客的详细信息之中。

image

如果在网站上同时显示几个座席信息,比如‘售前’、‘售后’、‘技术’等等,让访客根据自己的需要点击不同的座席进行沟通;就可以响应访客的不同的点击事件进行自定义字段赋值,然后再打开聊天窗口,这样座席人员就知道访客是想找谁沟通:

window.PP.setVar({"extra_field_TEXT_1": "STH_BASED_ON_DIFF_BUTTON"}, function() {
  //成功设置
  window.PP.show();
}, function() {
  //设置失败
});

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342

推荐阅读更多精彩内容

  • 工作到现在,对代码稍微有点认识,if else 会写那么点。今天就和大家谈谈所理解的MVC,以及现在比较流行的MV...
    闲云清烟阅读 565评论 0 1
  • 一个人能否取得成功,取决于有多少人支持你。越感恩的人,支持你就越多。 一天时间安排(计划做的有些迷茫。) 原因:因...
    王晓杰_2c01阅读 83评论 0 0
  • 《高效能人士7个习惯》的作者史蒂芬·柯维提出:我们要去做第二象限---重要不紧急的事。我们怎样才会有时间有...
    邢衍贞阅读 340评论 0 0
  • 听说我们的火车会相遇 我算好时间 在火车尾等你 送你信 却没想过你会不会也在那里 幸运的是 你在那里
    辛安小阅读 537评论 55 42