From 7b739c97028be2a5d5aef679ef1f8064cd10d386 Mon Sep 17 00:00:00 2001 From: Vojta Jina Date: Mon, 14 May 2012 14:14:52 -0700 Subject: fix($sniffer): report history false on Android < 4 Android has history.pushState, but it does not update the location correctly: http://code.google.com/p/android/issues/detail?id=17471 Closes #904 --- src/ng/sniffer.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/ng/sniffer.js b/src/ng/sniffer.js index b19e7ccf..0b116e27 100644 --- a/src/ng/sniffer.js +++ b/src/ng/sniffer.js @@ -14,10 +14,15 @@ */ function $SnifferProvider() { this.$get = ['$window', function($window) { - var eventSupport = {}; + var eventSupport = {}, + android = int((/android (\d+)/.exec(lowercase($window.navigator.userAgent)) || [])[1]); return { - history: !!($window.history && $window.history.pushState), + // Android has history.pushState, but it does not update location correctly + // so let's not use the history API at all. + // http://code.google.com/p/android/issues/detail?id=17471 + // https://github.com/angular/angular.js/issues/904 + history: !!($window.history && $window.history.pushState && !(android < 4)), hashchange: 'onhashchange' in $window && // IE8 compatible mode lies (!$window.document.documentMode || $window.document.documentMode > 7), -- cgit v1.2.3