开发者社区 问答 正文

钉钉微应用开发,调用JSAPI 时提示怎么处理?

钉钉微应用开发,调用JSAPI 时提示怎么处理?Not in DingTalk PC webview

展开
收起
三分钟热度的鱼 2023-08-08 16:58:27 360 分享 版权
4 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    当在钉钉微应用开发中调用JSAPI时提示"Not in DingTalk PC webview",这通常表示您正尝试在一个非钉钉PC Webview环境下调用JSAPI接口。钉钉的JSAPI只能在钉钉PC客户端或钉钉PC Webview中使用。

    钉钉的JSAPI主要是为了提供一些与钉钉客户端交互的功能,例如获取用户信息、发送消息、打开钉钉页面等。因此,如果您的应用程序正在非钉钉PC客户端或非钉钉PC Webview中运行,则无法直接使用JSAPI。

    解决这个问题的方法是确保您的应用程序在正确的环境中运行。请确保您在钉钉PC客户端或钉钉PC Webview中打开您的微应用,并在这些环境下进行JSAPI调用。如果您使用的是其他平台或环境,请考虑使用适合该平台的相应工具和技术进行开发和集成。

    2023-08-09 22:46:48
    赞同 展开评论
  • 如果在钉钉微应用开发中调用JSAPI时提示"Not in DingTalk PC webview",这意味着您的代码正在非钉钉PC Webview环境下执行。

    钉钉提供的JSAPI仅适用于在钉钉PC Webview环境中运行的应用程序。因此,在非钉钉PC Webview环境下,无法直接使用JSAPI进行相应的功能调用。

    要解决这个问题,您可以进行以下操作:

    1. 确认运行环境:首先,请确保您的应用程序正在正确的钉钉PC Webview环境中运行,而不是在其他浏览器或Web容器等环境中打开。

    2. 使用兼容性方案:如果您需要在非钉钉PC Webview环境中使用类似的功能,可以考虑使用其他适用于该环境的兼容性方案或技术。例如,对于移动端浏览器环境,您可以使用HTML5提供的原生API来实现相关功能。

    3. 针对特定运行环境进行处理:如果您的应用程序同时支持多个运行环境(如钉钉PC Webview和浏览器环境),您可以根据当前的运行环境选择性地调用或展示相关功能。可以通过检测User-Agent标识或其他运行时属性来判断当前的环境,并根据环境进行不同的处理。

    2023-08-08 21:46:14
    赞同 展开评论
  • 北京阿里云ACE会长

    Not in DingTalk PC webview 这个提示表示,当前并非在钉钉PC版微应用内。

    也就是说,在钉钉PC客户端里打开的钉钉微应用,与普通浏览器打开是不一样的。

    钉钉微应用内,可以调用钉钉提供的JSAPI(JavaScript API)来实现不同的功能。

    而 Not in DingTalk PC webview 这个错误正是在普通浏览器中调用JSAPI时提示的。

    为什么会出现这个问题呢?

    主要有以下几种可能:

    使用钉钉外部浏览器打开你的微应用。这时并非钉钉PC端,所以提示错误。

    在不在钉钉中的普通网页上调用钉钉JSAPI。也会提示不是钉钉PC视图。

    微应用URL被分享到非钉钉客户端的地方。

    处理方式主要有两种:

    只在钉钉PC端调用JSAPI
    使用以下JS可以检测当前是否在钉钉PC内部,然后再调用JSAPI:

    js
    Copy
    if (window.DDT) {
    // 在钉钉客户端
    window.dd.ready(function(){ })
    } else {
    // 非钉钉客户端
    }
    兼容非钉钉客户端
    提供适合普通浏览器的降级方案,来兼容非钉钉端。

    2023-08-08 19:41:04
    赞同 展开评论
  • 微应用开发 调用JSAPI 时提示 Not in DingTalk PC webview

    问题出错原因是:钉钉目前提供的前端API使用,需要在钉钉容器环境内打开的,如果环境不正确会报这些错误:

    比如需要在钉钉移动端Android端、iOS端打开,或者钉钉PC端 Windows端、mac端打开等,在浏览器里打开会报错的

    此回答整理自钉群“钉钉开发者社区(互助群)”

    2023-08-08 17:04:08
    赞同 展开评论