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