zningsc 发表于 2022-9-6 11:26:12

关于PC版钉钉在应用内新建流程或内容管理文档的咨询

如何实现PC版钉钉在应用内新建流程或内容管理文档的咨询 - 设计开发 - 藕粉社区 - Powered by Discuz! (o2oa.net)

之前发了一个帖子,感谢管理员的解答,解决了应用内打开已有ID的流程或内容管理文档的需求,现在请问如果新建文档的时候,还没有ID,应该如何写脚本

通过var url = "../x_desktop/work.html?workid=" + id;方式能实现钉钉PC版应用内打开有ID的文档,但如果我是新建文档呢,新建的时候ID还并未产生,这种情况ID从何而来呢,例如原本代码是
    createDocument : function(){
      var opt = {
            "category" : "XXX",
            "restrictToColumn" : true,
            "ignoreTitle": true
      }
      o3.page.createDocument(opt);}
现在要键入判断是钉钉后执行的脚本,请问如何写呢,下面是点击新建文档后浏览器打开的连接,x_desktop/cmsdoc.html?readonly=false&documentId=18670c46-cbee-4a6f-bee3-d42eb3d1c828&appId=cms.Document18670c46-cbee-4a6f-bee3-d42eb3d1c828&onPostPublish=function%20()%20%7B%20%5Bnative%20code%5D%20%7D&onAfterPublish=function(t)%7Bs.view%26%26s.view.reload%26%26s.view.reload()%2Cs.fireEvent("afterPublish"%2Ct)%7D

论坛管理员 发表于 2022-9-6 17:16:19

新建document?

//启动一个通知公告,标题为:关于XX的通知,启动后提示
         this.form.createDocument({
            category : "通知公告",
            data : {"subject": "关于XX的通知"},
            callback : function(json){
                this.form.notice("创建成功!", "success");
            }.bind(this)
         });


api中有详细说明

zningsc 发表于 2022-9-6 17:20:01

论坛管理员 发表于 2022-9-6 17:16
新建document?

//启动一个通知公告,标题为:关于XX的通知,启动后提示


我需要的是在PC版钉钉应用中新建document不跳转到浏览器去,而是在应用内新建,不知道你的这段代码能否实现

论坛管理员 发表于 2022-9-7 14:57:36

可以的

zningsc 发表于 2022-9-7 17:16:27

论坛管理员 发表于 2022-9-7 14:57
可以的

我试过了,并不会在应用内新建,同样是新开浏览器窗口

飞龙在天 发表于 2022-9-8 16:42:17

zningsc 发表于 2022-9-7 17:16
我试过了,并不会在应用内新建,同样是新开浏览器窗口

这个目前不行,因为pc版钉钉不支持window.open,会弹出到默认浏览器而不是在钉钉内部。
后续我们在这个api上加参数。
现在要实现你只能通过调用后端api,生成document对象后,用location打开对应的文档编辑页面进行处理。

zningsc 发表于 2022-9-8 17:59:30

FancyLou 发表于 2022-9-8 16:42
这个目前不行,因为pc版钉钉不支持window.open,会弹出到默认浏览器而不是在钉钉内部。
后续我们在这个ap ...

谢谢,总算你明白了我的意思,我就是说看local只能调取已产生ID的文档,不能新建。你说的通过调用后端api,生成document对象后,再去浏览,有没有例子呢,我看应用市场中的问卷调查功能中用到有,不知道是不是这个,这里就是创建文档,但还是会调用浏览器去打开


    createDocument : function(){      var opt = {
            "category" : "dd624eb6-8f4d-4816-a7bf-fc3950422568",
            "restrictToColumn" : true
      }
         o3.page.createDocument(opt);
    },
这个操作之后是调用浏览器打开如下链接
x_desktop/cmsdoc.html?readonly=false&documentId=18670c46-cbee-4a6f-bee3-d42eb3d1c828&appId=cms.Document18670c46-cbee-4a6f-bee3-d42eb3d1c828&onPostPublish=function%20()%20%7B%20%5Bnative%20code%5D%20%7D&onAfterPublish=function(t)%7Bs.view%26%26s.view.reload%26%26s.view.reload()%2Cs.fireEvent("afterPublish"%2Ct)%7D
有没有什么办法在创建后,不打开,而是获取到这个ID,然后我再用local去打开呢。




论坛管理员 发表于 2022-9-9 09:21:14

后端接口创建会返回documentid的,
页: [1]
查看完整版本: 关于PC版钉钉在应用内新建流程或内容管理文档的咨询