查看: 12224|回复: 7

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

升级   16.61%

139

主题

252

回帖

1661

积分

注册会员

Rank: 2

积分
1661
发表于 2022-9-6 11:26:12 | 显示全部楼层 |阅读模式
如何实现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

回复

使用道具 举报

升级   100%

139

主题

1万

回帖

4万

积分

超级版主

Rank: 8Rank: 8

积分
41458
发表于 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中有详细说明
回复

使用道具 举报

升级   16.61%

139

主题

252

回帖

1661

积分

注册会员

Rank: 2

积分
1661
发表于 2022-9-6 17:20:01 | 显示全部楼层
论坛管理员 发表于 2022-9-6 17:16
新建document?

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

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

使用道具 举报

升级   100%

139

主题

1万

回帖

4万

积分

超级版主

Rank: 8Rank: 8

积分
41458
发表于 2022-9-7 14:57:36 | 显示全部楼层
可以的
回复

使用道具 举报

升级   16.61%

139

主题

252

回帖

1661

积分

注册会员

Rank: 2

积分
1661
发表于 2022-9-7 17:16:27 | 显示全部楼层

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

使用道具 举报

升级   100%

1

主题

738

回帖

2447

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2447
发表于 2022-9-8 16:42:17 | 显示全部楼层
zningsc 发表于 2022-9-7 17:16
我试过了,并不会在应用内新建,同样是新开浏览器窗口

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

使用道具 举报

升级   16.61%

139

主题

252

回帖

1661

积分

注册会员

Rank: 2

积分
1661
发表于 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去打开呢。




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

升级   100%

139

主题

1万

回帖

4万

积分

超级版主

Rank: 8Rank: 8

积分
41458
发表于 2022-9-9 09:21:14 | 显示全部楼层
后端接口创建会返回documentid的,
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

联系客服 关注微信 下载APP 返回顶部 返回列表
viewthread