Обнаружение браузера Angular 6? - PullRequest
0 голосов
/ 05 сентября 2018

У меня есть приложение angular6, которое мы поддерживаем только с помощью Chrome, но мне бы хотелось, чтобы на странице / сообщении появлялись попытки пользователя перейти в приложение в IE с сообщением о том, что оно не поддерживается, либо вставьте эту ссылку в Chrome или скачать хром.

Нужно ли мне заполнить полифилл, чтобы приложение могло работать в IE, чтобы показать это сообщение, или я могу использовать какое-то обнаружение браузера, которое показывает только это всплывающее окно?

Я знаю, что вы можете выполнять обнаружение браузера в TS, что у меня есть, но это означает, что мне нужно многозаполнение IE, чтобы приложение загружалось даже для отображения страницы.

// Opera 8.0+
var isOpera = (!!window.opr && !!opr.addons) || !!window.opera || navigator.userAgent.indexOf(' OPR/') >= 0;

// Firefox 1.0+
var isFirefox = typeof InstallTrigger !== 'undefined';

// Safari 3.0+ "[object HTMLElementConstructor]" 
var isSafari = /constructor/i.test(window.HTMLElement) || (function (p) { return p.toString() === "[object SafariRemoteNotification]"; })(!window['safari'] || safari.pushNotification);

// Internet Explorer 6-11
var isIE = /*@cc_on!@*/false || !!document.documentMode;

// Edge 20+
var isEdge = !isIE && !!window.StyleMedia;

// Chrome 1+
var isChrome = !!window.chrome && !!window.chrome.webstore;

// Blink engine detection
var isBlink = (isChrome || isOpera) && !!window.CSS;

var output = 'Detecting browsers by ducktyping:<hr>';
output += 'isFirefox: ' + isFirefox + '<br>';
output += 'isChrome: ' + isChrome + '<br>';
output += 'isSafari: ' + isSafari + '<br>';
output += 'isOpera: ' + isOpera + '<br>';
output += 'isIE: ' + isIE + '<br>';
output += 'isEdge: ' + isEdge + '<br>';
output += 'isBlink: ' + isBlink + '<br>';
document.body.innerHTML = output;

Мысли? Спасибо!

1 Ответ

0 голосов
/ 15 октября 2018

В ngOninit в app.component.ts используйте блок if else. В приведенном ниже примере пользователь возвращается на предыдущую (не угловую) страницу после закрытия оповещения, поэтому остальная часть углового не загружается.

if (isIE) {
    alert('Message for users about not using IE');
    window.history.go(-1);
} else {
    // the rest of ngOnInit
}
...