我正在开发一个在Angular(1)中构建的项目,并且可以确认它在Dev& amp;和我所有桌面浏览器以及移动浏览器的生产环境( Android :Chrome,Firefox,Adblock浏览器; iOS :Stock浏览器,Firefox,Chrome)。遗憾的是,我们发现在不中加载了多个人的Android浏览器(我在DuOS 5.1.1中亲自测试过它,并且在Browserstack上的几个不同设备上进行了测试) 。
在查看此前的回复时,我采取了一些人民的方式。建议并将core-js与require('core-js')
添加到我们的 routes.js 文件中({b> 索引中包含<script src="node_modules/core-js/client/shim.min.js"></script>
html的的的);但这似乎没有任何效果。
我想知道是否有人对我应该尝试的其他事情有任何建议。我可以发布人们认为相关的代码的任何部分;但它是一个相当大的项目(数千行)
Screenshot 的
在左边,在我的手机上工作。在右侧,不在仿真设备上工作。
非常感谢!
答案 0 :(得分:0)
Polyfills无法正常工作,所以最终我们决定检测用户是否在Stock Android浏览器上 - 如果是的话,将它们带到一个页面,建议他们使用Firefox,Chrome等来使用该网站/应用
以下是我们用来执行此操作的代码:
var navU = navigator.userAgent;
// Android Mobile
var isAndroidMobile = navU.indexOf('Android') > -1 && navU.indexOf('Mozilla/5.0') > -1 && navU.indexOf('AppleWebKit') > -1;
// Apple webkit
var regExAppleWebKit = new RegExp(/AppleWebKit\/([\d.]+)/);
var resultAppleWebKitRegEx = regExAppleWebKit.exec(navU);
var appleWebKitVersion = (resultAppleWebKitRegEx === null ? null : parseFloat(regExAppleWebKit.exec(navU)[1]));
// Chrome
var regExChrome = new RegExp(/Chrome\/([\d.]+)/);
var resultChromeRegEx = regExChrome.exec(navU);
var chromeVersion = (resultChromeRegEx === null ? null : parseFloat(regExChrome.exec(navU)[1]));
// Native Android Browser
var isAndroidBrowser = isAndroidMobile && (appleWebKitVersion !== null && appleWebKitVersion <= 537) || (chromeVersion !== null && chromeVersion <= 38);
//If isAndroidBrowser, redirect
if(isAndroidBrowser){
window.location = "/views/compatibility/compatibility.html";
}