ioni c 3 [объект объекта] не может проанализировать данные в Android P - PullRequest
0 голосов
/ 23 января 2020

Я новичок в Иони c.

Я занимаюсь разработкой базового c информационного приложения.

Я запускаю его в браузере, эмуляторе, на реальном устройстве, оно работает отлично, но затем я попытался запустить его на Android версии 9, но это не сработало.

Возвращает [объект объекта] при входе в систему.

Я получаю вход от Ионный вход . Во всех более низких версиях пользователи могут заполнить детали, но в Android P, когда я щелкаю, чтобы заполнить детали, это не сработало. Я ничего не могу написать. Но после нажатия на кнопку я могу заполнить детали.

Когда все поля записаны и при входе в систему, возвращается [объект объекта] .

enter image description here

Во всех нижних версиях Android работает отлично. Пользователи могут войти в систему.

auth-service.ts

postData(credentials, type) {

    return new Promise((resolve, reject) => {

      let data: Observable<any> = this.http.post(baseURL + type, credentials);

      data.subscribe(response => {
        // console.log("Auth POST Response : " , response);
        for (let data of response) {
          resolve(data);
        }
      }, err => {
        console.log("Error", err);
        reject(err);
      }, () => {
        console.log('completed');
      });

    });
  }     

login.ts

login() {
      let loading = this.loadingCtrl.create({
        spinner: 'circles',
        content: 'Please wait...'
      });
      loading.present();

      let postData = new FormData();
      postData.append('contact_no', this.userData.contact_no);
      postData.append('password', this.userData.password);
      postData.append('fcm_id', this.userData.fcm_id);
      postData.append('imei_no', this.deviceId);

      this.authService.postData(postData, "login.php").then((result) => {
        this.responseData = result;
        console.log("res : ", this.responseData);
        this.success = this.responseData.success;
          console.log("this.success : ", this.success);
          if (this.success == 1) {
            let userDeatil = this.responseData.user_data;
            this.userId = this.responseData.user_id;
            localStorage.setItem('userData', JSON.stringify(userDeatil));
            loading.dismiss();
            this.navCtrl
              .push(TabsPage)
              .then(() => {
                const index = this.viewCtrl.index;
                this.navCtrl.remove(index);
              });
            // this.navCtrl.push(TabsPage);
          } else {
            this.message = this.responseData.message;
            loading.dismiss();
            let toast = this.toastCtrl.create({
              message: this.message,
              duration: 2000,
              position: 'bottom'
            });
            toast.present(toast);
          }
      }, (err) => {
        loading.dismiss();
        console.log("Error", err);
        let toast = this.toastCtrl.create({
          message: err,
          duration: 2000,
          position: 'bottom'
        });
        toast.present(toast);
      });
  }    

network_security_config. xml

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">localhost</domain>
    </domain-config>
</network-security-config>     

пакет. json

{
  "name": "sujagSindhiSamiti",
  "version": "0.0.1",
  "author": "Ionic Framework",
  "homepage": "http://ionicframework.com/",
  "private": true,
  "scripts": {
    "start": "ionic-app-scripts serve",
    "clean": "ionic-app-scripts clean",
    "build": "ionic-app-scripts build",
    "lint": "ionic-app-scripts lint"
  },
  "dependencies": {
    "@angular/animations": "5.2.11",
    "@angular/common": "5.2.11",
    "@angular/compiler": "5.2.11",
    "@angular/compiler-cli": "5.2.11",
    "@angular/core": "5.2.11",
    "@angular/forms": "5.2.11",
    "@angular/platform-browser": "5.2.11",
    "@angular/platform-browser-dynamic": "5.2.11",
    "@ionic-native/core": "4.20.0",
    "@ionic-native/splash-screen": "4.20.0",
    "@ionic-native/status-bar": "4.20.0",
    "@ionic/storage": "2.2.0",
    "cordova-android": "^8.1.0",
    "ionic-angular": "3.9.9",
    "ionicons": "3.0.0",
    "rxjs": "5.5.11",
    "sw-toolbox": "3.6.0",
    "zone.js": "0.8.29"
  },
  "devDependencies": {
    "@ionic/app-scripts": "3.2.4",
    "cordova-plugin-device": "^2.0.2",
    "cordova-plugin-ionic-keyboard": "^2.2.0",
    "cordova-plugin-ionic-webview": "^4.1.3",
    "cordova-plugin-splashscreen": "^5.0.2",
    "cordova-plugin-statusbar": "^2.4.2",
    "cordova-plugin-whitelist": "^1.3.3",
    "typescript": "2.6.2"
  },
  "description": "An Ionic project",
  "cordova": {
    "plugins": {
      "cordova-plugin-whitelist": {},
      "cordova-plugin-statusbar": {},
      "cordova-plugin-device": {},
      "cordova-plugin-splashscreen": {},
      "cordova-plugin-ionic-webview": {
        "ANDROID_SUPPORT_ANNOTATIONS_VERSION": "27.+"
      },
      "cordova-plugin-ionic-keyboard": {}
    },
    "platforms": [
      "android"
    ]
  }
}

Ответы [ 2 ]

0 голосов
/ 23 января 2020

Изменить строку, она должна работать

    this.responseData = result;

    this.responseData = JSON.parse(result);
            OR 
    this.responseData = JSON.stringify(result);
0 голосов
/ 23 января 2020

Вы добавили network_security_config. xml path и использовали CleartextTraffi c вашу конфигурацию. xml под платформой android примерно так:

<edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application" xmlns:android="http://schemas.android.com/apk/res/android">
  <application android:networkSecurityConfig="@xml/network_security_config" />
  <application android:usesCleartextTraffic="true"/>
</edit-config>
...