现已有一个第三方开发的网页应用,希望能够在钉钉内部直接打开。
已经用多种方式做了测试,该网页应用打开均白屏
我在 应用能力
-网页应用
-H5应用配置信息
设置了应用首页地址。但是发现手机端和电脑端钉钉打开应用都是白屏。
使用了 <web-view>
嵌入网页,手机扫码预览调试还是显示白屏,调试控制台没有显示什么有用的信息。
还是白屏。
钉钉浏览其他网页/自建企业内部应用部署其他网站均正常。
白屏的网页,在其他应用的内置浏览器中正常(微信、微信公众号、企业微信、飞书、QQ、微博均可以直接在APP内置浏览器正常打开该网页)
因为是第三方web应用,拿不到服务器,所以自己用nginx反向代理了一下,然后对反向代理的网站又做了以下尝试:
首先反代的地址,依旧是微信、微信公众号、企业微信、飞书、QQ、微博均可以直接在APP内置浏览器正常打开
反向代理的时候加了Access-Control-Allow-Origin:*
,不起作用。
NGINX日志里面看到来自钉钉的请求的UserAgent如下,所以手机下载了100.0.4896.58的chrome浏览器,是可以正常访问的。
UserAgent: Mozilla/5.0 (Linux; U; Android 14; zh-CN; 23013RK75C Build/UKQ1.230804.001) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/100.0.4896.58 UWS/5.11.2.0 Mobile Safari/537.36 AliApp(DingTalk/7.5.20) com.alibaba.android.rimet/36584141 Channel/700159 language/zh-CN abi/64 xpn/xiaomi UT4Aplus/0.2.25 colorScheme/light
问题解决。
该web应用直接在js里面用
window.navigator.userAgent.toLowerCase();
查UA,然后调用SDK,但是不知道为什么它调的钉钉的SDK就有问题。
最终解决方案是,整站来个反代,然后给指定js资源转发到我修改过后的js资源,问题解决。
如果网页应用和钉钉服务器不在同一个域下,可能会遇到跨域资源共享(CORS)的问题。确保网页服务器正确设置了CORS策略,允许来自钉钉的请求。
HTTPS配置:钉钉要求所有内嵌网页都必须使用HTTPS协议。请检查你的网页应用是否部署在HTTPS上。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。