2016-01-15 1 views
1

J'ai quelque chose que je ne peux pas comprendre. J'étudie un framework ionique et crée une page de connexion simple, je suis capable de traiter via l'éditeur (j'utilise Atom Editor avec preview live ionique installé) aussi bien via le navigateur que je peux me connecter ou enregistrer et va m'amener à la page suivante.Projet ionique, Ne fonctionne pas au téléphone mais travaille pendant le développement

Mais c'est vraiment bizarre, je ne peux pas me connecter ou m'enregistrer quand j'ai compilé le projet .APK et installé sur mon téléphone.

Des idées les gars?

MISE À JOUR

Cant l'exécuter dans l'émulateur Android aussi, mais fonctionne très bien dans le navigateur en utilisant servir ionique.

Voici une partie de mon code.

login.html

<ion-header-bar align-title="center" class="bar-balanced"> 
    <h1 class="title">Login</h1> 
</ion-header-bar> 
<ion-view> 
    <ion-content class="padding has-header"> 
     <ion-list> 
     <ion-item> 
      <input type="text" ng-model="login.username" placeholder="Username"> 
     </ion-item> 
     <ion-item> 
      <input type="password" ng-model="login.password" placeholder="Password"> 
     </ion-item> 
     </ion-list> 
     <button nav-clear class="button button-block button-balanced" ng-click="LogIn()">Login</button> 
     <button class="button button-positive button-clear button-full" ui-sref="signup">Register now!</button> 
    </ion-content> 
</ion-view> 

login.php

<?php 
    require_once 'dbConfig.php'; 
    // check username or password from database 
    $postdata = file_get_contents("php://input"); 
    $request = json_decode($postdata); 
    $user = $request->username; 
    $password = $request->password; 

    $results = mysql_query("SELECT email, password FROM tbl_user WHERE email='".$user."' AND password='".$password."' LIMIT 1") or die('{"error":"Login error! Code: 003"}'); 
    $match = mysql_num_rows($results); 
    if($match > 0){ 
     echo "1"; 
    }else{ 
     echo "0"; 
    } 
?> 

controller.js

angular.module('ionicApp.controllers', []) 


.controller('AppCtrl', function($scope) { 
}) 


.controller('LoginCtrl', function($scope, $state, $http, $ionicPopup) { 
    $scope.showAlert = function(msg) { 
     $ionicPopup.alert({ 
      title: msg.title, 
      template: msg.message, 
      okText: 'Ok', 
      okType: 'button-positive' 
     }); 
    }; 


    $scope.login = {}; 
    $scope.LogIn = function() { 
    if(!$scope.login.username){ 
     $scope.showAlert({ 
     title: "Information", 
     message: "Please enter your email address" 
     }); 
    }else if(!$scope.login.password){ 
     $scope.showAlert({ 
     title: "Information", 
     message: "Please enter your password" 
     }); 
    }else{ 
     var request = $http({ 
      method: "post", 
      url: "http://www.mywebsite.com/api/login.php", 
      data: { 
      username: $scope.login.username, 
      password: $scope.login.password 
      }, 
      headers: { 'Content-Type': 'application/x-www-form-urlencoded' } 
     }); 

     /*Successful HTTP post request or not */ 

     request.success(function (data){ 
      if (data == '1'){ 
      $state.go('app.test'); 
      } 
      else { 
      var alertPopup = $ionicPopup.alert({ 
        title: 'Login failed!', 
        template: 'Please check your credentials!' 
      }); 
      } 
     }) 
    } 
    }; 
}); 

app.js

angular.module('ionicApp', ['ionic','ionicApp.controllers']) 

.config(function($stateProvider, $urlRouterProvider) { 

    $stateProvider 

    .state('app', { 
     url: "/app", 
     abstract: true, 
     templateUrl: "templates/menu.html", 
     controller: 'AppCtrl' 
    }) 


    .state('app.test', { 
     url: '/test', 
     views: { 
     'menuContent': { 
      templateUrl: 'templates/test.html' 
     } 
     } 
    }) 


    .state('login', { 
     url: "/login", 
     templateUrl: "templates/login.html", 
     controller: 'LoginCtrl' 
    }); 
    // if none of the above states are matched, use this as the fallback 
    $urlRouterProvider.otherwise('/login'); 
}); 

Répondre

0

Trouvé que, le problème est lié au plug-in cordova. Tous les utilisateurs rencontrant ce problème peuvent essayer ce correctif.

exécutez simplement plugin cordova ajoutez cordova-plugin-whitelist dans notre dossier de projet et reconstruisez-le.