开发者社区> 问答> 正文

钉钉子应用中引入h5应用,下载附件时,安卓正常,ios一直报网络错误

各位老师好,请教一个问题,在钉钉手机端,h5应用引入程序时,有个文件下载的功能,后端提供了一个下载地址,然后验证功能时,发现安卓手机会跳转到浏览器进行文件下载,但是苹果手机点击后,无法下载,一直报网络错误,大概猜测是钉钉内不支持跳转到外部浏览器,而钉钉的内置浏览器又不支持文件下载,我验证过如下三种方法:

// 第一种,验证结果 安卓正常,ios失败
 const link = document.createElement('a');  ios不支持
         link.href = `下载url`;
         link.target = '_self';
         link.download = 'download'
         link.style.display = 'none'
         document.body.append(link)
         link.click()
// 第二种,使用钉钉内置方法downloadFile
 // 这种方法后面查看钉钉官方文档 均不支持    

// dd.biz.util.downloadFile({url: url,
             onSuccess: function(result) {
               console.log('result',result);
             },
             onFail: function(err) {
             console.log('err',err);
            }})
// 第三种 使用钉钉内置方法openLink
// 这种方法安卓可以 ios依旧不行
dd.biz.util.openLink({url: `url`})

请问各位老师 钉钉移动端是否有兼容苹果和安卓的下载方法呢 或者能让程序跳出钉钉内置浏览器 到手机默认浏览器下载的方法呢 如果我的理解或者描述有问题 也还原各位老师同行提出,谢谢!

测试页面: 点击按钮 helloworld之后 会触发上面的附件下载逻辑:
click.jpeg

安卓测试下载结果:

android.jpeg

ios测试测试下载结果:
ios.jpeg

展开
收起
游客24vuew2ttkvpe 2023-07-26 10:11:08 630 0
4 条回答
写回答
取消 提交回答
  • 兄弟怎么解决的,急

    2023-09-22 08:12:28
    赞同 展开评论 打赏
  • 北京阿里云ACE会长

    简单来说,是因为:

    安卓手机跳转到外部浏览器后可以正常下载文件
    而iOS设备由于限制,跳转的仍是钉钉内置浏览器,而钉钉内置浏览器又不支持文件下载
    所以才出现这种现象。

    有几种解决方法:

    在H5页面内部引入文件下载组件
    比如使用a标签或者iframe方式将文件下载链接引入H5页面内,此时能 bypass iOS设备的限制,实现下载。

    跳转到提供商的下载APP
    如果可以,可以将用户跳转到文件提供商的APP进行下载。iOS上也能正常使用。

    提交钉钉反馈,请求修复内置浏览器
    由于这是钉钉内置浏览器的一个已知问题,可以提交反馈给钉钉官方,请求修复。

    在后端提供下载链接,弹出原生界面
    在后端提供下载链接时,可以使用安卓和iOS的原生插件,弹出原生下载界面进行下载。

    综上,针对iOS设备无法下载附件的问题,推荐方案1将下载链接引入H5页面内部进行下载,或者方案2跳转到第三方DOWNLOAD APP进行下载。

    2023-07-27 08:03:00
    赞同 展开评论 打赏
  • 当您在钉钉子应用中引入H5应用,并在iOS设备上下载附件时,遇到网络错误的问题,可能有以下几个原因和解决方法:

    1. iOS网络权限:确保您的iOS设备允许H5应用在钉钉中访问网络。请检查并确认钉钉的网络权限已经开启。您可以在设备的"设置"中找到钉钉应用,检查是否允许其使用网络。

    2. 钉钉版本更新:检查您的钉钉应用是否是最新版本。有时旧版本的钉钉可能存在网络相关的问题。尝试升级到最新版本,以获取修复可能存在的问题的更新。

    3. 网络连接问题:如果iOS设备无法正常连接到互联网,下载附件时会报网络错误。确保您的iOS设备连接到一个可靠的网络,例如Wi-Fi或移动数据网络。如果可能,请尝试切换到其他网络连接方式,看是否能够解决问题。

    4. 服务器配置:有时候,下载附件的问题可能是由于服务器配置问题导致的。请确保H5应用所引用的附件文件在服务器上正确配置了适当的访问权限和MIME类型。

    5. 验证附件链接:检查H5应用中下载附件的链接是否正确。尝试在Web浏览器中手动访问该链接,以验证附件是否可以被正常下载。如果在浏览器中也无法下载附件,那么需要检查服务器端的设置和附件文件本身。

    2023-07-26 12:04:05
    赞同 展开评论 打赏
  • 月移花影,暗香浮动

    您好,这个问题可能是由于苹果手机的Safari浏览器的安全策略导致的。在iOS 14中,Safari浏览器默认禁止了非同源应用程序下载文件。因此,您需要在H5应用中添加一个下载链接,该链接将用户引导到Safari浏览器中进行下载 。

    如果您不想让用户跳转到Safari浏览器中进行下载,您可以使用钉钉提供的biz.util.downloadFile接口来实现文件下载。这个接口可以在不打开Safari的情况下直接下载文件。

    2023-07-26 11:00:16
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
58同城Android客户端Walle框架演进与实践之路 立即下载
Android组件化实现 立即下载
蚂蚁聚宝Android秒级编译——Freeline 立即下载