nx-workbench-sdk

1.0.1 • Public • Published
'use strict';

var NX = __NX_WORKBENCH_SDK__;

var noop = function() {};

/* 构造 */
function constructDemo() {
    var config = [
        {
            id: 'init',
            content: '初始化'
        },
        {
            id: 'showMessageContext',
            content: '查看消息上下文'
        },
        {
            id: 'onFocus',
            content: '切入告知'
        },
        {
            id: 'onBlur',
            content: '离开告知'
        },
        {
            id: 'getCurrentUserInformation',
            content: '获取当前用户信息'
        },
        {
            id: 'showToast',
            content: '显示消息提示框'
        },
        {
            id: 'uploadFile',
            content: '文件上传'
        },
        {
            id: 'checkAlToken',
            content: '更新鉴权信息'
        },
        {
            id: 'checkAuthorizationCode',
            content: '获取用户授权码'
        },
        {
            id: 'selectContacts',
            content: '选择联系人'
        },
        {
            id: 'sendMessages',
            content: '发送模板消息'
        }
    ];

    var container = document.querySelector('#container');

    function createElement(id, content, type) {
        var ele = document.createElement(type || 'button');
        ele.id = id;
        ele.innerHTML = content;
        return ele;
    }

    for(var i = 0, l = config.length; i < l; i++) {
        container.appendChild(createElement(config[i].id, config[i].content))
    }
}

/* 绑定 */
function bindDemo() {
    function $(selector) {
        return document.querySelectorAll(selector);
    }

    var triggers = $('#container button');

    for(var i = 0, l = triggers.length; i < l; i++) {
        (function(trigger) {
            trigger.addEventListener('click', function(e) {
                handleTrigger(e.target.id);
            });
        })(triggers[i])
    }

    function handleTrigger(type) {
        switch(type) {
            case 'init': {
                /* 初始化 */
                NX.init({
                    appKey: 'appKey',
                    jsTicket: 'jsTicket',
                    /* 离开时,是否清除iframe */
                    killMe: false,
                    complete: function(res) {
                        debugger
                    }
                });
                break;
            }
            case 'showMessageContext': {
                /* 查看消息上下文 */
                NX.showMessageContext({
                    msgid: '544423752834904064',
                    sessionId: '1080539769',
                    type: '1'
                });
                break;
            }
            case 'getCurrentUserInformation': {
                /* 获取当前用户信息 */
                NX.getCurrentUserInformation({
                    complete: function(res) {
                        debugger
                    }
                });
                break;
            }
            case 'showToast': {
                /* 显示消息提示框 */
                NX.showToast({
                    type: 'success',
                    title: '显示消息提示框',
                    duration: 1000
                });
                break;
            }
            case 'uploadFile': {
                /* 文件上传 */
                NX.uploadFile({
                    dnd: 'body',
                    pick: '#uploadFile',
                    onStart: function(obj) {
                        debugger
                    },
                    onProgress: function(obj) {
                        debugger
                    },
                    complete: function(res) {
                        debugger
                    }
                });
                break;
            }
            case 'checkAlToken': {
                /* 更新鉴权信息 */
                NX.checkAlToken();
                break;
            }
            case 'checkAuthorizationCode': {
                /* 更新鉴权信息 */
                NX.checkAuthorizationCode({
                    /* 开发使用线下接口 */
                    url: 'http://develop.xm.test.sankuai.com/oauth/v2/authorize',
                    /* 开发,使用线下日志appKey */
                    appKey: '6061218110f4105p',

                    /* 获取授权后的会跳地址,query参数中包含code信息 */
                    /* 可在全局中监听 onCheckAuthorizationCode获取 */
                    redirectUri: 'http://127.0.0.1:4444/',
                    scope: 'USER_INFO PHONE_NUMBER PERSON_FILE GROUP_FILE'
                });
                break;
            }
            case 'selectContacts': {
                /* 更新鉴权信息 */
                NX.selectContacts({
                    title: '',
                    value: [],
                    onSelect: noop,
                    onCancel: noop,
                    onChange: noop,
                    complete: noop
                });
                break;
            }
            case 'sendMessages': {
                /* 更新鉴权信息 */
                NX.sendMessages({
                    data: {},
                    onStart: noop,
                    onCancel: noop,
                    onFail: noop,
                    onSuccess: noop,
                    complete: noop
                });
                break;
            }
        }
    }

    NX.onFocus(function(res) {
        debugger
    });

    NX.onBlur(function(res) {
        debugger
    });

    NX.onCheckAlToken(function(res) {
        /* 只有鉴权信息改变,才会触发 */
        debugger
    });

    NX.onCheckAuthorizationCode(function(code) {
        /* 用户授权码,使用该授权码,获取access token */
        debugger
    })
}

constructDemo();
bindDemo();

Readme

Keywords

none

Package Sidebar

Install

npm i nx-workbench-sdk

Weekly Downloads

2

Version

1.0.1

License

ISC

Last publish

Collaborators

  • standlee