Angular App未在Android浏览器上加载

时间:2017-07-17 23:50:54

标签: javascript android angularjs compatibility

我正在开发一个在Angular(1)中构建的项目,并且可以确认它在Dev& amp;和我所有桌面浏览器以及移动浏览器的生产环境( Android :Chrome,Firefox,Adblock浏览器; iOS :Stock浏览器,Firefox,Chrome)。遗憾的是,我们发现在中加载了多个人的Android浏览器(我在DuOS 5.1.1中亲自测试过它,并且在Browserstack上的几个不同设备上进行了测试) 。

在查看此前的回复时,我采取了一些人民的方式。建议并将core-jsrequire('core-js')添加到我们的 routes.js 文件中({b> 索引中包含<script src="node_modules/core-js/client/shim.min.js"></script> html的的的);但这似乎没有任何效果。

我想知道是否有人对我应该尝试的其他事情有任何建议。我可以发布人们认为相关的代码的任何部分;但它是一个相当大的项目(数千行)

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

非常感谢!

1 个答案:

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