Ionic — приложение работает в браузере, но не работает при эмуляции в мобильном телефоне

Я пробовал этот код

angular.module('starter', ['ionic','ngCordova'])
.run(function($ionicPlatform) {
$ionicPlatform.ready(function() {
// Hide the accessory bar by default (remove this to show the accessory bar above the keyboard
// for form inputs)
if(window.cordova && window.cordova.plugins.Keyboard) {
cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
}
if(window.StatusBar) {
StatusBar.styleDefault();
}
});
})
.controller('datactr',['$scope','$http',function($scope,$http) {
$scope.submit=function(){
console.log("step1");

$http({
method:'POST',
url:'http://awesomeg.2fh.co/updata.php',
crossDomain : true,
data:{
'name':$scope.name,
}

}).success(function(data,status,header,config){
console.log("step2");
console.log(data);
$scope.name="";
$scope.message="You have successfully updated the database";
})
}
}])

мой php код на бэкэнд

<?php
header('Access-Control-Allow-Origin: *' );
header('Access-Control-Allow-Credentials: true' );
header('Access-Control-Request-Method: *');
header('Access-Control-Allow-Methods: POST, GET, PUT, DELETE,     OPTIONS');
header('Access-Control-Allow-Headers: *,x-requested-with,Content-Type');
header('X-Frame-Options: DENY');
$postdata = file_get_contents("php://input");
$request = json_decode($postdata);
$name=$request->name;
if($name){
$con=mysqli_connect('host','uname','pass','db');
$result=mysqli_query($con,"INSERT INTO userdata (name) VALUES ('$name')");
}
$out=json_encode($name);
echo"$out";
?>

Мой HTML код

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width">
<title></title>

<link href="lib/ionic/css/ionic.css" rel="stylesheet">
<link href="css/style.css" rel="stylesheet">

<!-- IF using Sass (run gulp sass first), then uncomment below and remove the CSS includes above
<link href="css/ionic.app.css" rel="stylesheet">
-->

<!-- ionic/angularjs js -->
<script src="lib/ionic/js/ionic.bundle.js"></script>
<!-- cordova script (this will be a 404 during development) -->
<script src="js/ng-cordova.min.js"></script>
<script src="cordova.js"></script>

<!-- your app's js -->
<script src="js/app.js"></script>
<script type="js/services.js"></script>
</head>
<body ng-app="starter">

<ion-pane>
<ion-header-bar class="bar-stable">
<h1 class="title">Data Collection</h1>
</ion-header-bar>
<ion-content ng-controller="datactr">
<form role="form" ng-submit="submit()">
<label class="item item-input item-stacked-label item-divider">
Name

<input type="text" ng-model="name" placeholder="Name">
</label>
<div class="padding">
<button type="submit" class="button button-block button-positive">Submit</button>
</div>
<div class="item item-footer">
{{message}}
</div>
</form>
</ion-content>
</ion-pane>
</body>
</html>

Ну, это основное ионное приложение, которое принимает данные от пользователя и отправляет их в виде json на сервер, сервер получает json, а затем обрабатывает его для обновления базы данных на сервере. Я проверил это в браузере, используя

ионная подача

он работает нормально, когда я вводю данные, он обновляет базу данных и выдает сообщение, успешно обновленное, но когда я пытался протестировать его на мобильном телефоне, используя

ионный прогон — приборы

приложение открывается в мобильном телефоне, и когда я ввожу данные и нажимаю «Отправить», ничего не происходит, экран с заполненным полем ввода остается.

Кто-нибудь может помочь?

исправил проблему, добавив следующие строки:

adding cordova-plugin-whitelist

и добавление следующих строк в config.xml

<access origin="*"/>
<allow-intent href="*"/>
<allow-navigation href="*"/>

2

Решение

Похоже, ваш код выдает исключение в веб-просмотре ваших устройств. Вы можете использовать инструменты разработчика Chrome для доступа к консоли устройства и другим функциям, предоставляемым инструментами разработчика в настольной версии Chrome.

Как это сделать:

  • Подключите ваше устройство к компьютеру,
  • Включите опцию «Отладка USB» в апплете «Разработчик» меню «Настройки» на устройстве Android,
  • введите следующее в адресной строке Chrome:

    хром: // инспектировать

  • Запустите приложение Ionic на устройстве Android

  • Выберите свое приложение на экране «chrome: // inspect»

Вы увидите экран приложения с консолью и другими инструментами разработчика.
И там Вы можете следить за возможными исключениями JS.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]