У меня возникла ситуация, когда мне нужно отображать предупреждающее сообщение всем, кто не использует хром. Я пробовал это с помощью vanilla JS, но столкнулся с проблемами и задался вопросом, могу ли я на самом деле добиться этого с помощью Angular 2 и просто установить его на свой корневой компонент.показать сообщение всем, кто не использует хром с Angular 2
ответ
Проверить ng2-responsive.
Вы можете отобразить/скрыть компонент (например, ваш компонент сообщения) в зависимости от типа браузера, типа устройства, размера и ориентации видового экрана.
Надеюсь, что это поможет.
Вы можете проверить, является ли браузер хром в методе onInit() вашего корневого компонента и показывать тостер с помощью primeNG.
export class AppComponent implements OnInit {
title:string;
message:string;
msgs: Message[] = [];
constructor(private _window:WindowRef) {}
ngOnInit(){
this.title = 'Check browser example'
let isChrome = !!this._window.nativeWindow.chrome && !!this._window.nativeWindow.chrome.webstore;
if(!isChrome){
this.message = "You are not using Chrome";
this.msgs.push({severity:'warn', summary:'Warning Message', detail:'Your are not using Chrome'});
alert("Not using chrome");
}else{
this.msgs.push({severity:'success', summary:'Success Message', detail:'Your are using Chrome'});
this.message = "You are using Chrome";
}
}
}
Чтобы получить ссылку на объект окна создания службы:
import {Injectable} from '@angular/core';
function _window(): any {
// return the native window obj
return window;
}
@Injectable()
export class WindowRef {
get nativeWindow(): any {
return _window();
}
}
** Edit: ** Заменено plunkr с primeNG примера и создали услугу, чтобы получить ссылку на объект окна.
Пример: https://plnkr.co/edit/pTgV3p7MpKfDb5irlaQn?p=preview
Ссылка: How to detect Safari, Chrome, IE, Firefox and Opera browser?
ли это поможет решить вашу проблему? – JSNinja
Я получаю следующую ошибку: '' 'Свойство 'chrome' не существует в типе 'Window'.''' – Daimz
' '' let isChrome = !! window.chrome && !! window.chrome.webstore; if (! IsChrome) { это.unsafeBrowser = true; } else { this.unsafeBrowser = false; } '' ' – Daimz
Если вы хотите, чтобы обнаружить браузер в приложении Angular2, вы можете использовать только JavaScript таким образом:
var isChromeBrowser = !!window.chrome && !!window.chrome.webstore;
, но я думаю, что вы хотели бы обнаружить Blink двигатель, а не Chrome браузер. Каждый код обнаружения с помощью Javascript вы можете найти here
Вы можете использовать только окно переменных в машинописном файле, но если вы собираетесь создать модульное тестирование, вы должны создать некоторый сервис для получения объекта окна, например:
import { Injectable } from '@angular/core';
@Injectable()
export class WindowService {
public window = window;
}
и использовать его таким образом:
@Component({
templateUrl:"someComponent.html"
})
export class SomeComponent {
public isChromeBrowser: boolean;
constructor(private windowService: WindowService) {
!!window.chrome && !!window.chrome.webstore;
this.isChromeBrowser = windowService.window.chrome && !!windowService.window.chrome.webstore;
}
}
- 1. Angular 2 отправить пустое сообщение
- 2. angular 2 - показать сообщение об ошибке для любого исключения
- 3. Как создать расширение хром с помощью Angular 2 RC1
- 4. Почему Angular 2 использует расширение .ts?
- 5. Отображать HTTP-ошибки во всем мире с помощью Angular 2
- 6. WebDriverException: Сообщение: хром не достижим
- 7. Как показать сообщение пользователю не разрешено в Угловом 2 охранником
- 8. selenium.common.exceptions.WebDriverException: Сообщение: хром недоступен
- 9. Хром не использует кеш после потери питания?
- 10. Создайте почтовый клиент, который отправляет письма всем, кто прокомментировал сообщение
- 11. angular 2 ngfor показать компонент в массиве
- 12. Хром родное сообщение
- 13. socket.io с Angular не отображается сообщение мгновенно
- 14. Как показать сообщение, когда клиент не использует Chrome?
- 15. Кто-нибудь использует rx.jquery?
- 16. Сообщение Linux всем терминалам
- 17. Показать сообщение, где будет реклама, если кто-то использует рекламный блок
- 18. Карма - Хром не удался 2 раза (не запускается). Бросаю
- 19. Кто-нибудь использует BetterAuthorizationSample?
- 20. Ожидание Promise-Angular 2
- 21. Angular 2 - Лучший способ сделать класс доступным во всем мире
- 22. Angular 2 отправить событие от родителя ко всем детям
- 23. Angular 2 webworkers
- 24. Аякса сообщение об ошибке хром
- 25. Angular 2 View не освежает
- 26. Angular $ http file Сообщение
- 27. Кто-нибудь использует GoogleData?
- 28. angular 2 animation toggleState()
- 29. Angular 2 - ngModel не обновляется с datepicker
- 30. кто использует индекс SimpleDB?
Это отлично сработало для меня с дополнительным преимуществом, поэтому мы легко разрешаем доступ к другим браузерам по мере их обновления. – Daimz