# 网易七鱼Web开发指南(V2)

# WEB-SDK概要

七鱼客服SDK可以帮助第三方网站及应用快速构建一个完善的客服系统生态圈,SDK提供较为完善的客服应用功能,及简洁的API接口。

SDK提供如下扩展功能:

  • 自定义接入
  • CRM对接
  • 访客分流
  • 商品链接
  • 未读消息
  • VIP接入支持
  • 常见问题设置
  • 网站访问统计
  • 多机器人接入

以下所有接入代码的例子都可以在这里下载。接入Demo

对接七鱼WEB-SDK,只需要在页面上添加七鱼后台提供的接入代码即可,代码需要加在body中。访客访问页面时,页面会执行代码,加载七鱼的JS文件。

# Web接入方案

# 基本接入配置

  1. 管理端获取接入代码

管理端-设置-网站接入-接入及开关-接入代码。

  1. 完整页面实例展示

	<!DOCTYPE html>
	<html>
	    <head>
	        <title>在线客服</title>
	        <meta charset="utf-8"/>
	    </head>
	    <body>
	        <script>
                (function (w, d, n, a, j) {
                    w[n] = w[n] || function () {
                        return (w[n].a = w[n].a || []).push(arguments)
                    };
                    j = d.createElement('script');
                    j.async = true;
                    j.src = 'https://qiyukf.com/script/044865c94981c048609d5c94c1ae9c6d.js';
                    d.body.appendChild(j);
                })(window, document, 'ysf');
            </script>
	        <!-- YOUR CODE HERE -->
	    </body>
	</html>

以上样例是最简单的七鱼接入,访客访问页面时会在页面右下角出现访问客服的入口(由JS实现,按钮样式可在后台配置),点击后会进入客服聊天页面(聊天页面有三种样式:浮层、新标签、新页面,也可以在后台配置)。如果需要自定义客服按钮,可以参考(访客端自定义) 。

  1. 管理端可以实现如下入口配置:

    1. 三种访客端入口挂件模式
    2. 三种访客端对话框打开方式
    3. 自定义配置多个访客端对话框模板,包括颜色、欢迎语等;如需配置每个链接打开的对话框,参考“open接口-打开聊天窗口”一节
    4. 自定义配置多个会话邀请模板,包括底图、接入会话触发动作等,示例如下(如需会话邀请模板关联某个对话框样式模板,请使用会话邀请模板的高级自定义功能,将“接受邀请”的操作设置指向某个对话框模板):

	<!DOCTYPE html>
	<html>
	    <head>
	        <title>自定义配置会话邀请模板</title>
	        <meta charset="utf-8"/>
	    </head>
	    <body>
             <script>
                (function (w, d, n, a, j) {
                    w[n] = w[n] || function () {
                        return (w[n].a = w[n].a || []).push(arguments)
                    };
                    j = d.createElement('script');
                    j.async = true;
                    j.src = 'https://qiyukf.com/script/044865c94981c048609d5c94c1ae9c6d.js?templateId=123';
                    d.body.appendChild(j);
                })(window, document, 'ysf');
            </script>
	        <!-- templateId表示自定义会话邀请的模板标识 -->
	        <!-- YOUR CODE HERE -->
	    </body>
	</html>

如需会话邀请模板关联某个对话框样式模板,请使用会话邀请模板的高级自定义功能,将“接受邀请”的操作设置指向某个对话框模板。

# sdk初始化

  1. 七鱼web sdk会在加载完成后自动进行初始化,可以通过代码设置初始化成功(onready)的回调

  2. 如果在sdk初始化完成之前设置回调,则设置的回调函数会等待sdk初始化完成后执行;如果在sdk初始化完成后进行设置,则回调函数会立即执行

示例代码:

	ysf('onready', function() {
        // todo
        console.log('sdk ready');
    });

# 企业CRM对接

企业可以通过调用config接口配置企业用户信息,以便在客服系统中将会话与企业产品中的用户关联起来,如以下方式

注意,如果你在sdk初始化完成之前调用本接口,它将等待sdk初始化完成后执行

    ysf('config', {
        uid: "123456789",      // 用户Id
        name: 'test',          // 用户名称
        email: 'test@163.com', // 用户邮箱
        mobile: '13888888888',  // 用户电话
        spkf: 0 // 加载访客端后是否向客服发起视频邀请,1发起邀请,0不发起邀请
    });

成功调用该接口并打开客服聊天窗口后,客服即可在客服端聊天窗口右侧的“用户信息/客户资料”tab下看到上述用户信息。config接口只是把开发者赋值信息传递到客服端前端页面展示,所以在发现访客信息与理想中不一样,那就只能是1、传参有问题;2、config接口调用失败。

ysf('config')支持传入成功和失败回调函数(success、error)。当在ios的h5页面使用七鱼sdk时,设置用户信息是一个异步的过程;如果需要保证用户信息设置成功,则应该在成功回调中进行后续操作(如进行页面跳转、打开聊天窗口等)

示例代码:

    ysf('config', {
        uid: "123456789",      // 用户Id
        name: 'test',          // 用户名称
        email: 'test@163.com', // 用户邮箱
        mobile: '13888888888',  // 用户电话
        success: function(){     // 成功回调
			ysf('open');
    	},
    	error: function(){       // 错误回调
    		// handle error
    	}
    })

# 企业用户账号的切换

企业对接的情况下,企业需要切换账号时,接入七鱼的第三应用需要调用 ysf('logoff') 函数登出。

# 企业基础信息

使用SDK时可以配置一些企业产品相关的用户信息,以便在客服后台可以正确识别出对应的用户,七鱼客服WEB SDK提供企业可以设置以下信息:

参数 类型 描述
uid String 可选,用户在企业产品中的标识,便于后续客服系统中查看该用户在产品中的相关信息,不传表示匿名用户 。若要指定用户信息,不显示默认的(guestxxx用户姓名),就必须传uid
name String 可选,用户在企业产品中的名称,便于后续客服系统中查看该用户在产品中的相关信息
email String 可选,用户在企业产品中的邮箱,便于后续客服系统中查看该用户在产品中的相关信息
mobile String 可选,用户在企业产品中的手机,便于后续客服系统中查看该用户在产品中的相关信息
data String 可选,用户在企业中的其他详细信息,JSON字符串

# 企业扩展信息

扩展信息字段data用一个数组的 JSON (opens new window) 字符串描述用户的详细信息,数组中每个元素代表一个数据项。数据项以(key, value)对的形式为基础,增加了额外的字段以控制显示样式。数据项定义如下:

字段 类型 必须 说明
key String 数据项的名称,用于区别不同的数据。其中real_name、mobile_phone、email为保留字段,分别对应客服工作台用户信息中的“姓名”、“手机”、“邮箱”这三项数据。保留关键字对应的数据项中,index、label属性将无效,其显示顺序及名称由网易七鱼系统指定。
value Mixed 该数据显示的值,类型不做限定,根据实际需要进行设定。
label String 该项数据显示的名称。
index Int 用于排序,显示数据时数据项按index值升序排列;不设定index的数据项将排在后面;index相同或未设定的数据项将按照其在 JSON 中出现的顺序排列。
href String 超链接地址。若指定该值,则该项数据将显示为超链接样式,点击后跳转到其值所指定的 URL 地址。
hidden Boolean 仅对mobile_phone、email两个保留字段有效,表示是否隐藏对应的数据项,true为隐藏,false为不隐藏。若不指定,默认为false不隐藏。

# 轻量CRM接入方案

接入代码:

    ysf('config', {
        uid: "123456789",     
        name: 'test',          
        email: 'test@163.com', 
        mobile: '13888888888' 
    });

# 扩展CRM接入方案

接入代码:

	ysf('config', {
	   uid:"1442286211167",
	   data:JSON.stringify([
		   {"key":"real_name", "value":"土豪"},
		   {"key":"mobile_phone", "hidden":true, "value":"13800000000"},
		   {"key":"email", "value":"13800000000@163.com"},
		   {"index":0, "key":"account", "label":"账号", "value":"zhangsan" , "href":"http://example.domain/user/zhangsan"},
		   {"index":1, "key":"sex", "label":"性别", "value":"先生"},
		   {"index":2, "key":"reg_date", "label":"注册日期", "value":"2015-11-16"},
		   {"index":3, "key":"last_login", "label":"上次登录时间", "value":"2015-12-22 15:38:54"},
           {"index": 4, "key":"avatar","label":"头像","value":"https://xxxxx.jpg"}
	   ])
	});

# 接口CRM对接

企业 CRM 接口由客户企业提供并实现,网易七鱼系统将在必要的时候调用特定的接口,并将接口返回的数据以约定的样式显示在客服工作界面。 特别要注意企业需要进行 服务器跨域配置, 具体详情见: 企业信息对接

# 商品链接

发起会话前,企业可以将用户正在查看的商品信息发送给客服,以便客服在后台及时预判访客需要咨询的内容。

注意,如果你在sdk初始化完成之前调用本接口,它将等待sdk初始化完成后执行

    ysf('product', {
        show : 1, // 1为打开, 其他参数为隐藏(包括非零元素)
        title : '标题',
        desc : '商品描述',
        picture : '商品图片地址',
        note : '备注',
        url : '跳转链接'
    })

ysf('product')支持传入成功和失败回调函数(success、error)。当在ios的h5页面使用七鱼sdk时,设置商品链接是一个异步的过程;如果需要保证商品链接设置成功,则应该在成功回调中进行后续操作(如进行页面跳转、打开聊天窗口等)

示例代码:

	ysf('product', {
	    show : 1, // 1为打开, 其他参数为隐藏(包括非零元素)
	    title : '标题',
	    desc : '商品描述',
	    picture : '商品图片地址',
	    note : '备注',
	    url : '跳转链接',
        success: function(){     // 成功回调
			ysf('open');
    	},
    	error: function(){       // 错误回调
    		// handle error
    	}
	})

注: show 参数用于控制访客端商品链接是否显示;对于客服端,只要接入就一定会显示商品链接信息

ysf('config')ysf('product')接口都提供了回调方法,所以在同时使用config和product方法是需要注意回调逻辑。可以在config的success回调中调用product方法,之后再在product的success中处理开发者自己想要实现的逻辑;或者可以使用变量标记的方法。

# 访客手动发送商品链接

默认情况下,配置的商品链接会在接入人工会话后自动发送给客服;如果需要控制发送的时机,可以传入sendByUser参数。当设置该参数为1时,七鱼访客端不会自动发送商品链接,而是提供对应的引导卡片,访客可根据自己的需要点击引导卡片,手动发送商品链接给客服。

示例代码:

    ysf('product', {
        sendByUser: 1, // 是否由访客手动发送,1为是,其他参数为否
        actionText: '发送链接', // 发送按钮文案
        actionTextColor: '#000000', // 发送按钮文案颜色(16进制格式)
        title : '标题',
        desc : '商品描述',
        picture : '商品图片地址',
        note : '备注',
        url : '跳转链接'
    })

当sendByUser设置为1时,show参数将失效(取默认值1);同样的,actionText和actionTextColor参数仅在sendByUser为1时有效

# 自定义模板

为支持不同场景下商品信息的展示,七鱼访客端根据传入的template字段来确定具体的解析方式,当前支持pictureLink(图片链接)模板和默认模板

    ysf('product', {
        show : 1, // 1为打开,其他参数为隐藏(包括非零元素)
        template: 'pictureLink', // 模板类型,不传为默认类型
        title : '标题',
        picture : '商品图片地址',
        url : '跳转链接'
    })

当使用pictureLink模板时,只有title、picture、url字段生效

# 操作客服工作台iframe

商品链接消息提供了可配置的功能性按钮,可以实现两个功能:1、支持主动定位到客服工作台的iframe页面,并通过postMessage的方式向iframe页面中发送配置的信息,2、支持浏览器用新标签的方式打开配置的url。

示例代码:

    ysf('product', {
        show : 1, // 1为打开, 其他参数为隐藏(包括非零元素)
        title : '标题',
        desc : '商品描述',
        picture : '商品图片地址',
        note : '备注',
        url : '跳转链接',
        tags: [{
                "label": "打开七鱼官网",  // 按钮名字
                "url": "https://qi.163.com", // 非必填,如果没有focusIframe字段,或者没有匹配到iframe,就以新窗口打开这个链接
                "focusIframe": "iframe名称", // 定位到iframe的标识,以iframe的名称匹配
                "data": {"name": "ss","sex": "男"}  // 以postMessage形式发送的数据,数据格式不限
            },{
                "label": "查询订单",
                "focusIframe": "订单",
                "data": {"orderId": "10000012","userName": "xxx"}
        }]
    });

注: 使用此接口,移动端SDK也得更新到4.1版本。

# 访客分流

网易七鱼客服系统默认会按照智能方式分配客服, 如果想让访客分配给指定的客服组或者客服,则需要使用访客分流功能

# 如何查找客服信息

在管理端 -> 设置 -> 访客分配 -> ID查询下面, 可以查找到相应的客服id和客服组id。 在管理端 -> 设置 -> 访客分配 -> 高级自定义分配(WEB端)-> Web端自定义链接分配下,可以直接复制链接地址接入

接入代码:


    ysf('config', {
        uid:"1442286211167",
        name:'test',
        email:'test@163.com',
        mobile:'13888888888',
        staffid:'123', // 客服id
        groupid: '123' // 客服组id
    });

代码优先级高于后台配置,所以当代码中指定了staffid或者groupid后,后台的web端访客分流配置将无效。staffid和groupid只要传一个就可以了,没必要两个参数都传(同时传了staffid和groupid,忽略groupid)。

# 机器人优先开关

在3.1版本中,增加了robotShuntSwitch参数,该参数取值为0或1,在指定了访客分流时有效;如果robotShuntSwitch为1,访客会先由机器人接待,当转人工咨询时再分配给设置的分流客服

接入代码:

    ysf('config', {
        uid:"1442286211167",
        name:'test',
        email:'test@163.com',
        mobile:'13888888888',
        staffid:'123',
        robotShuntSwitch: 1 // 机器人优先开关
    });

# 访客端自定义

七鱼客服的系统默认入口是放在页面右下角。 如果企业需要自定义入口, 可以进行如下操作步骤:

  1. 关闭七鱼默认提供的客服入口(全局性操作,关闭后所有引用JS的页面都不会出现默认入口)具体操作如下:

    管理中心 - 接入设置 - 网站接入 - 访客开关, 设置 停用

    还有一个可以针对单个页面进行隐藏的配置,即在引入JS时添加hidden=1参数来隐藏当前页面的默认入口,样例如下:

    (function (w, d, n, a, j) {
        w[n] = w[n] || function () {
            return (w[n].a = w[n].a || []).push(arguments)
        };
        j = d.createElement('script');
        j.async = true;
        j.src = 'https://qiyukf.com/script/044865c94981c048609d5c94c1ae9c6d.js?hidden=1';
        d.body.appendChild(j);
    })(window, document, 'ysf');
    
  2. 企业开发者配置对话框样式模板

  3. 在页面上配置按钮,并在用户点击时响应事件,调用WEB-SDK的ysf('open')API接口打开聊天窗口(也可以使ysf('url')获取url并直接打开) ysf('open')ysf('url')的差别可查看接口说明中的ysf('open')接口和ysf('url')接口。

注意,如果你在sdk初始化完成之前调用ysf('open')ysf('url'),它们将无法被正确执行。建议结合ysf('onready')来控制调用的时机,示例如下:

var isSdkReady = false;
    ysf('onready', function () {
        isSdkReady = true;
    })

    clickHandler = function () {
        if(isSdkReady) {
            ysf('open');
            // location.href = ysf('url');
        }else {
            // 仅做参考
            alert('sdk尚未加载成功,请稍后再试');
        }
    }

# 未读消息

企业可以使用ysf('onunread')来监听未读消息通知,也可以使用ysf('getUnreadMsg')获取当前的未读消息。七鱼提供的未读消息内容包括未读消息的总数、最后一条消息的类型和内容

    // 监听
    ysf('onunread',  function(result){
        // todo
        console.log(result.total, result.type, result.message);
    });

    // 获取
    var result = ysf('getUnreadMsg');
    console.log(result.total, result.type, result.message);

七鱼只是暴露了unread事件读取未读消息,之后的处理逻辑由开发者自己定义。

# VIP接入支持

企业需要对不同级别的访客进行接待区分为VIP客户和普通客户;七鱼支持VIP客服的接入,VIP可区分等级,上限为10级。

接入代码

	ysf('config', {
		uid : 'user',
		level : 1 // vip级别
	})

有部分接入者会要求对VIP再次分级并指定客服接待,对于该问题需要特别说明下: 七鱼后台对于VIP客户设置有3种规则(仅展现VIP标识、优先进线、专线客服)。如果要对VIP再次分级并指定客服,就需要将VIP客户设置为“仅展现VIP标识”;然后开发者可以根据自己定义的VIP分级,来指定客服组(例如:开发者可以自己判断VIP1~3,由A组接待;VIP4~6由B组接待…)。如果设置为“优先进线”或者“专线客服”,会对代码层面的指定客服有影响(为体现vip的特殊性,后台对vip客户的设置是最高优先级)。

# 常见问题

访客进入咨询时,如果进入了机器人会话,企业可以通过设置常见问题,将一些用户可能需要问的问题首先发送给用户。通过高级自定义配置,可以给不同页面中的不同咨询入口设置不同的常见问题。

# 查询问题模板id

在管理端 -> 设置 -> 机器人 -> 常见问题设置 -> 设置常见问题模板,可以查找到企业的常见问题模板及其id。

接入代码

    ysf('config', {
       uid:"201609051809",
       name:'接入',
       email:'test@163.com',
       mobile:'13888888888',
       qtype: 1056         //常见问题模板id
    });

# 网站访问统计

七鱼SDK在接入网站提供服务的同时,可以收集访客的访问信息(例如PV,UV,着陆页,客户来源,搜索关键词,跳出率等数据),并在管理端 工作报表>访问统计 中显示。

# 使用方法

确保您网站的需要统计的每个独立页面都接入了七鱼SDK,七鱼SDK会自动获取上述信息。(如部分页面不需要客服咨询入口,可以在接入SDK时传入一个hidden=1隐藏)。

# 网站行为轨迹

七鱼SDK,在接入网站提供服务的同时,可以收集访客的行为轨迹,包括访客的页面行为轨迹和关键行为事件。

# 访问轨迹

确保您网站需要统计的每个独立页面都接入了七鱼SDK,七鱼SDK会自动获取每个用户进入页面的时间,停留时长,页面名称,页面路径等信息。

# 行为事件轨迹

对接入了七鱼SDK的页面可进行关键事件埋点。企业可以通过调用track接口获取用户在页面的关键事件,可以在服务过程中知晓客户的有些关键事件节点,帮助客服更好的了解客户的行为。
需要统计行为关键行为事件时,可在相关事件处接入以下代码:

    ysf('track', '事件名称', {
        '说明参数' : '说明参数值',
        '说明参数_2' : '说明参数值2'
    })

# 多机器人接入

对于开通了多机器人的企业,对于不指定robotId的访客入口,网易七鱼系统会在机器人开关打开的情况下自动匹配当前的默认机器人,如果想让指定的机器人服务访客,则需要使用多机器人接入功能指定robotId。

# 如何查找指定的机器人信息

开通了多个机器人的企业,在管理端 -> 设置 -> 机器人列表中找到对应的机器人ID。 在管理端 -> 访客分配 -> 高级自定义分配(WEB端)-> Web端自定义链接分配下,可以直接复制链接地址接入

接入代码:

    ysf('config', {
        uid:"usr18398492039",
        name:'mixRobotTestUser',
        email:'test@163.com',
        mobile:'13888888888',
        robotId: '12345'  // 机器人ID
    });

# 工作台iframe发送商品或订单类消息

网易七鱼对于已经接入客服工作台iframe的客户提供了可以发送自定义商品或者订单类、自定义模板类消息的功能。 用户可以通过在接入的iframe页面中将数据对象按找下面规则组装好后通过postMessage的方式发送到网易七鱼的系统。

基本实现代码如下:

    var data = {
        // 要发送到七鱼的商品或者订单的数据对象
    }
    window.parent.postMessage(data, '*'); // 将数据用postMessage的方式发送到七鱼

商品类消息的字段规则如下:

字段 类型 必须 描述
picture String 商品的缩略图地址
title String 商品的展示标题
desc String 商品展示的简要描述
price String 商品的价格
url String 点击商品跳转到的链接地址
activity String 活动展示标题
activityHref String 点击活动跳转到的地址
showCustomMsg String 此字段为向七鱼发送自定义信息的标识,为1展示并接收此消息,为0则不接收此消息(此字段为必填项,没有七鱼则不会接收)

订单类消息字段规则如下:

字段 类型 必须 描述
picture String 商品的缩略图地址
title String 商品的展示标题
desc String 商品展示的简要描述
payMoney String 商品支付的价格
orderId String 订单的id
orderTime String 下单时间
orderSku String 订单的sku描述信息
orderCount String 订单中商品数量
orderStatus String 订单交易状态
tags Array 订单类消息展示的功能按钮,tag每一项为{"label": "打开七鱼网址","url": "https://qi.163.com"},label为按钮的名称,url为打开的链接
url String 点击商品跳转到的链接地址
activity String 活动展示标题
activityHref String 点击活动跳转到的地址
showCustomMsg String 此字段为向七鱼发送自定义信息的标识,为1展示并接收此消息,为0则不接收此消息(此字段为必填项,没有七鱼则不会接收)

自定义模板类消息字段规则如下:

字段 类型 必须 描述
template String 模板类型(当前支持"pictureLink"即图片链接模板)
picture String 图片地址
url String 点击图片跳转到的链接地址
showCustomMsg String 此字段为向七鱼发送自定义信息的标识,为1展示并接收此消息,为0则不接收此消息(此字段为必填项,没有七鱼则不会接收)

# 接口说明

# API列表

API API说明
ysf('onready', callback) 设置sdk初始化成功回调
ysf('config', options) 设置用户信息、分流信息
ysf('product', info) 设置商品链接
ysf('logoff') 用户登出
ysf('open', options) 打开客服聊天窗口
ysf('url') 获取打开聊天窗口的URL地址
ysf('onunread', callback) 设置未读消息通知回调
ysf('getUnreadMsg') 获取当前未读消息

# ysf('config', options)

配置企业及用户信息,嵌入七鱼客服SDK后可直接配置这些信息

输入参数说明:

参数 类型 描述
options Object 企业配置信息
options.uid String 企业当前登录用户标识,不传表示匿名用户
options.name String 企业当前登录用户名称
options.email String 企业当前登录用户邮箱
options.mobile String 企业当前登录用户手机号
options.data String 企业当前登录用户其他信息,JSON字符串
options.staffid String 指定客服id
options.groupid String 指定客服组id
options.robotShuntSwitch Number 机器人优先开关(访客分配)
options.level Number 企业当前登录用户vip等级
options.qtype Number 企业常见问题模板id
options.success Function 配置成功回调
options.error Function 配置失败回调
options.spkf Number 主动发起视频邀请开关

使用范例

ysf('config', {
    uid:"1442286211167",
    name:'test',
    email:'test@163.com',
    mobile:'13888888888',
    data:JSON.stringify([
       {"key":"real_name", "value":"土豪"},
       {"key":"mobile_phone", "hidden":true, "value":"13800000000"},
       {"key":"email", "value":"13800000000@163.com"},
       {"index":0, "key":"account", "label":"账号", "value":"zhangsan" , "href":"http://example.domain/user/zhangsan"},
       {"index":1, "key":"sex", "label":"性别", "value":"先生"},
       {"index":5, "key":"reg_date", "label":"注册日期", "value":"2015-11-16"},
       {"index":6, "key":"last_login", "label":"上次登录时间", "value":"2015-12-22 15:38:54"}
    ]),
    staffid:'123',
    groupid: '123',
    level: 1,
    qtype: 1056,
    success: function(){
    	// todo
    },
    error: function(){
    	// handle error
    }
});

# ysf('open')

打开客服聊天窗口

在引入七鱼SDK时会自动应用企业后台设置的接入配置,打开聊天窗口时直接调用open接口即可,聊天窗口会以后台设置的模式打开。或者通过传入templateId应用自定义配置的对话框样式。

输入参数说明:

参数 类型 描述
options Object 企业配置信息
options.templateId Number 对话框样式模板标识

使用范例

ysf('open', {
	templateId:123
});

# ysf('url')

通过此接口可获取聊天窗口的URL地址,如果想在当前窗口打开聊天窗口可以用以下方式

注意,浮层模式下使用ysf('url')得到的url可能与你的期望不同,建议仅在标签和弹窗模式使用此方式


<a href="#" id="online-service">在线客服</a>

<script>
    (function (w, d, n, a, j) {
        w[n] = w[n] || function () {
            return (w[n].a = w[n].a || []).push(arguments)
        };
        j = d.createElement('script');
        j.async = true;
        j.src = 'https://qiyukf.com/script/044865c94981c048609d5c94c1ae9c6d.js?hiddden=1';
        d.body.appendChild(j);
    })(window, document, 'ysf');
    document.getElementById('online-service').onclick = function(){
        location.href = ysf('url');
    };
</script>

# FAQ

# webview嵌入问题

Q: 在移动端应用中使用webview嵌入七鱼sdk报错,无法正常打开咨询页面

A:请确保webview打开了localstorage功能

# 用户信息设置不生效的问题

Q: 在ios的h5页面使用七鱼sdk,设置的用户信息无法生效

A: 请先检查自己的接入代码,是否在设置用户信息(调用ysf('config'))后立即打开了聊天窗口(或进行了页面跳转),这种情况下用户信息很可能设置失败。 当在ios的h5页面使用七鱼sdk时,设置用户信息是一个异步的过程;如果需要保证用户信息设置成功,则应该在成功回调中打开聊天窗口或进行后续操作

示例代码:

    ysf('config', {
        uid:"1442286211167",
        name:'test',
        email:'test@163.com',
        mobile:'13888888888',
        success: function(){     // 成功回调
			ysf('open');
    	},
    	error: function(){       // 错误回调
    		// handle error
    	}
    });

# 浮层模式问题

Q: 手机上是否支持浮层样式?

A:支持