【问题标题】:AngularJS Web App stopped working on iPhone 6AngularJS Web App 在 iPhone 6 上停止工作
【发布时间】:2014-11-24 06:57:46
【问题描述】:

我有一个 AngularJS 移动网站,它在 iPhone 5、iPhone 5s(都运行 iOS 8)和我的 iPad(也运行 iOS 8)上运行良好。但是,“登录”按钮在 iPhone 6 上不起作用(例如,您单击它并没有任何反应)。完全相同的网站在其他 iOS 移动平台上运行完全没有问题。这对我来说没有意义,因为它们都是 iOS 8?

附带说明,该网站确实可以通过浏览器堆栈在 iPhone 6 模拟器上运行,但不能在物理 iPhone 6 上运行。我不确定它是否是 iPhone 6 上的默认设置,但我找不到任何东西.

这是点击登录按钮时调用的代码:

标记的代码sn-p是:

<div class="col-sm-6 bordered-form field-padding">
  <form name="loginForm" role="form" novalidate>
    <div class="row">
      <div class="col-sm-12">
        <h4>Existing employers login</h4>
      </div>
    </div>
    <div class="row">
      <div class="col-sm-12 form-group">
        <input type="email" name="email" ng-model="user.email" placeholder="Please enter your email address" class="validatedInputField" required>
          <span ng-show="loginForm.email.$valid" class="glyphicon glyphicon-ok icon-success"></span>
          <span ng-show="loginForm.email.$invalid && loginForm.email.$dirty" class="glyphicon glyphicon-remove icon-invalid"></span>
      </div>
    </div>
    <div class="row">
      <div class="col-sm-12 form-group">
         <input type="password" name="password" ng-model="user.password" placeholder="Please enter your Password" class="validatedInputField" required ng-minlength="6">
          <span ng-show="loginForm.password.$valid" class="glyphicon glyphicon-ok icon-success"></span>
          <span ng-show="loginForm.password.$invalid && loginForm.password.$dirty" class="glyphicon glyphicon-remove icon-invalid"></span>
      </div>
      <div class="col-sm-12">
        <button class="btn btn-success" ng-disabled="loginForm.$invalid" ng-click="authenticate()"><span class="glyphicon glyphicon-thumbs-up"></span>&nbspLogin</button>
      </div>
    </div>
  </form>
</div>

角函数在这里:

$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 );
    }); 
}

Angular 版本:1.2.15

引导版本:~3.0.3

有人在 iPhone 6 上遇到过这个问题吗?

由于我无法使用物理 iPhone 6,因此在隔离问题时遇到了一些问题。如果有人可以使用 iPhone 6,我可以让他们访问我网站上的测试帐户,他们可以很快复制问题。

任何帮助将不胜感激。

【问题讨论】:

  • 你能做一个测试页吗?我有测试手机可以帮忙。
  • 嗨@raptor - 你能在Skype上与我联系吗?我的 Skype 用户名是“gaj_varma”,然后我会私信给您一个真实帐户的登录详细信息,以便您试用。非常感谢您的帮助。

标签: ios angularjs safari iphone-6


【解决方案1】:

我在实际出现问题的 iPhone 6 上对此进行了调试,当服务器返回的令牌存储在会话存储中时,我发现它失败了。

我致电了 Apple 支持,并与他们通了相当多的时间。该页面在其他 iPhone 6 设备上工作,但不是这个。在尝试了一些不同的设置并确认它可以在 Chrome 上运行后,出色的 Apple 支持人员让我查看该页面是否设置为“私人”。

在 Safari 浏览器的右下角,您可以单击一个图标,然后将各个网站设置为“私人”。取消选中这会使网站正常工作,我可以将令牌存储在会话存储中。看来我的客户不小心将网站设置为“私人”,这是导致问题的原因。

希望这可以为遇到类似问题的其他人节省一些时间。完全归功于 Apple 支持,他们花了一个多小时解决了这个问题。

【讨论】:

    猜你喜欢
    • 2011-07-08
    • 2012-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多