金蝶云星空网页端(Html5)免登嵌入使用,第三方系统如何获取金蝶云星空网页端所有单据已经关闭

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

金蝶云星空网页端(Html5)免登嵌入使用,第三方系统如何获取金蝶云星空网页端所有单据已经关闭

【应用场景】

金蝶云星空网页端所有页签单据关闭后,需要返回激活第三方系统的主控台


【注意事项】

该实现方案涉及到跨域、跨站点通信交互技术,非最佳实践,不推荐使用,仅限于特殊场景下的特殊应用。


【实现步骤】

<1>编写金蝶云星空网页端二开插件,示例代码如下:Kingdee.EntryRole.HTML5.Customized.PostMessage.Plugin.rar。 

<2>参考帖子将二开插件部署到金蝶云星空系统中:网页端如何注册全局JS文件和Css文件插件

<3>部署后,所有单据关闭后,网页端会通过postMessage向父级系统发出回调指令,携带的参数:

参数含义 

    eventKey 指令名,值为"allMainTabFormClosed"

    currentSelIndex 星空当前激活单据的序号

第三方系统接受指令步骤:

<4>在第三方系统中编写postMessage接收逻辑,通过注册messge指令进行接收,有不清楚的也可以搜索postMessage使用方法,如:

 window.addEventListener('message', function (e) {  

        //doActions

    });

<5>当接收到的指令,来源为星空域名系统且回调参数中包含关键字"allMainTabFormClosed",即可在第三方系统中做相应的处理,如:切换激活到第三方系统的主控台。

星空二开示例代码:

(function() {

    var initDynamicFormconfig = function() {

        try {

            if (!KD.isEmpty(KDMainTabControlProxy)) {

                $.extend(KDMainTabControlProxy.prototype, {


                    removeTabItem_Supper: KDMainTabControlProxy.prototype.removeTabItem,


                    removeTabItem: function(tabItem) {

                        this.removeTabItem_Supper.call(this, tabItem);

                        if (this.children && this.children.length <= 2) {

                            var postPara = {};

                            postPara.eventKey = "allMainTabFormClosed";

                            postPara.currentSelIndex = this.currentShowIndex;

                            window.parent && window.parent.postMessage && window.parent.postMessage(KD.stringify(postPara), "*");

                        }

                    },


                });

            };

        } catch (e) {;

        }

    }


    setTimeout(function(e) {

        initDynamicFormconfig();

    }, 1000);


})()

金蝶云星空网页端(Html5)免登嵌入使用,第三方系统如何获取金蝶云星空网页端所有单据已经关闭

【应用场景】金蝶云星空网页端所有页签单据关闭后,需要返回激活第三方系统的主控台【注意事项】该实现方案涉及到跨域、跨站点通信交互技术...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息