2017-07-17 80 views
1

我正在使用Angular(1)构建的项目,并且可以确认它在两个Dev &我的所有桌面浏览器以及移动设备的生产环境中均可用( Android:Chrome,Firefox,Adblock浏览器; iOS:Stock Browser,Firefox,Chrome)。不幸的是,我们发现它是而不是在多个人的股票中加载Android浏览器(我亲自在DuOS 5.1.1以及Browserstack上的几个不同设备上进行了测试)。Angular App未加载Android Android浏览器

在通过前面的反应看这里的话,我已经采取了一些人们的建议,(在我们的的index.html<script src="node_modules/core-js/client/shim.min.js"></script>)与require('core-js')加入core-js我们 routes.js文件;但这似乎没有任何影响。

我想知道如果有人有任何建议,我应该尝试更多的东西。我可以发布人们认为相关的代码的任何部分;但它是一个相当大的项目(千行)

Screenshot
在左边,我的手机上运行。在右侧,不在仿真设备上工作。

非常感谢!

回答

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"; 
    }