我有一个AngularJS移动网站,可以在iPhone 5,iPhone 5s(运行iOS 8)和iPad(iOS 8)上运行良好.但是,"登录"按钮在iPhone 6上不起作用(例如,您单击它并且没有任何反应).完全相同的网站在其他iOS移动平台上工作没有任何问题.这对我来说没有意义,因为它们都是iOS 8?
另外,该网站可以通过浏览器堆栈在iPhone 6模拟器上运行,但不是在物理iPhone 6上.我不确定它是否是iPhone 6上的默认设置,但我找不到任何东西.
以下是单击登录按钮时调用的代码:
标记的代码段是:
角度函数在这里:
$scope.authenticate = function(){ var credentials = "Basic " + $window.btoa( this.user.email + ":" + this.user.password ); $http.get( ENV.apiEndpoint + '/auth/basic/', {headers: {'Authorization': credentials}}) .success( function(data, status, headers, config){ AuthorisationService.LoginUser(data); }). error( function(data, status, headers, config) { ErrorLoggingService.logError( data, status, headers, config ); }); }
角度版本:1.2.15
Bootstrap版本:~3.0.3
有没有人在iPhone 6上遇到过这个问题?
由于我无法访问物理iPhone 6,因此我在解决问题时遇到了一些问题.如果有人可以访问iPhone 6,我可以让他们访问我网站上的测试帐户,他们可以很快地复制问题.
任何帮助将不胜感激.
我在实际的iPhone 6上调试了这个问题,我发现当服务器返回的令牌存储在会话存储中时它失败了.
我打电话给Apple支持,花了很多时间和他们通电话.该页面正在使用其他iPhone 6设备但不是这个.在尝试了几个不同的设置并确认它正在使用Chrome之后,这位出色的Apple支持人员让我看看该页面是否设置为"私有".
在Safari浏览器的右下角,单击一个图标,您可以将各个网站设置为"私有".取消选中此功能使网站正常工作,我可以将令牌存储在会话存储中.看来我的客户不小心将网站设置为"私有",这导致了问题.
希望这可以节省其他人一些类似的问题.完全归功于Apple支持人员花了一个多小时来解决此问题.