uni-app 浏览器兼容问题

uni-app 浏览器兼容问题

示例代码:

uniCloud.callFunction({  
    name: 'admin',  
    data: {  
        action,  
        data  
    }  
}).then(({  
    result  
}) => {  
    return resolve(action, result);  
}).catch(err => {  
    return reject(action, err);  
})  

操作步骤:

新建uniapp项目,当使用uniCloud.callFunction时IE11出现问题,promise和callback都不行

预期结果:

正常请求

实际结果:

语法错误

bug描述:

新建uniapp项目,当使用uniCloud.callFunction时IE11出现问题,promise和callback都不行, 请问官方这是转es5时的遗漏还是uniapp不考虑支持IE,或者请教如何自定义转es5?

相关图片

Image 1 Image 2


更多关于uni-app 浏览器兼容问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

需求已了解,这是个什么项目需要支持ie 11呢?

更多关于uni-app 浏览器兼容问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html


二,很多终端都在使用双内核浏览器,我希望在用IE内核打开时有提示来切换内核或更换chrome

所以,首先需要支持IE打的开,再考虑做页面进行提示和图文指导

uni-app默认编译目标为ES6,而IE11不支持Promise等ES6特性,导致在IE11中运行uniCloud.callFunction时出现语法错误。这不是uni-app的遗漏,而是IE11对现代JavaScript支持有限。

解决方案:

  1. manifest.json中配置编译兼容性:
{
  "h5": {
    "devServer": {
      "disableHostCheck": true
    },
    "template": "template.h5.html",
    "es5": true
  }
}

es5设为true,强制编译为ES5语法。

  1. 如需支持Promise,在项目中引入polyfill:
  • 安装core-js:npm install core-js
  • 在main.js中引入:
import 'core-js/features/promise'
回到顶部