Ionic Cordova родной плагин не работает в IOS - PullRequest
0 голосов
/ 10 мая 2018

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

  1. cordova-plugin-x-socialsharing 5.4.0 для "SocialSharing"
  2. cordova-plugin-printer 0.7.3 для "Принтера"
  3. cordova-plugin-barcodescanner 0.7.4 для "BarcodeScanner"

Эти плагины прекрасно работают с Android, но когда я тестирую их с IOS, я сталкиваюсь с той же проблемой со всеми следующими плагинами:

Когда я нажимаю кнопку печати в iPhone, ничего не происходит

но когда я нажимаю кнопку «Домой» и снова открываю приложение, то печатает всплывающее окно автоматически. С этой же проблемой я сталкиваюсь и с другими плагинами.

Я думаю, что это проблема с функциональностью фона в IOS.

Я из Android-фона, поэтому я не могу понять, почему это происходит с IOS, и я застрял с ним.

Вот моя часть кода:

Для Печать:

print() {
  this.printer.isAvailable().then((onSuccess=>{}), onerror=>{});
  this.printer.check().then((onSuccess=>{}), onerror=>{});
  let options: PrintOptions = {
    name: 'MyDocument',
    duplex: true,
    landscape: true,
    grayscale: true
  };
  let printData = this.printContent(); 
  setTimeout(() => {
    this.platform.ready().then(success => {
      this.printer.print(printData).then(function() {},
        function() { alert("Error while printing!"); });
    }, error=> { alert('Platform Not Ready'+error); });
  }, 100);
}

Для Совместное использование

savebase64AsPDF(folderpath,filename,content,contentType) {
  // Convert the base64 string in a Blob
  var DataBlob = this.b64toBlob(content,contentType,12);
  console.log("Starting to write the file :3");
  window['resolveLocalFileSystemURL'](folderpath, function(dir) {
    console.log("Access to the directory granted succesfully");
    this.file = dir.getFile(filename, {create:true}, function(file) {
      console.log("File created succesfully.");
      file.createWriter(function(fileWriter) {
        console.log("Writing content to file");
        fileWriter.write(DataBlob);
      }, function(){
        alert('Unable to save file in path '+ folderpath);
      });
    });
  });
  //this.downloadFile(DataBlob);
  this.socialSharing.share("",""+this.record.orderNo+" Sale Order",folderpath+"/"+filename,null).then(() => { }).catch((error) => { alert(error); });
}

Для Сканирование

cordova.plugins.barcodeScanner.scan(
      function (result) {
          alert("We got a barcode\n" +
                "Result: " + result.text + "\n" +
                "Format: " + result.format + "\n" +
                "Cancelled: " + result.cancelled);
      },
      function (error) {
          alert("Scanning failed: " + error);
      }
   );

Package.json

{
  "name": "AppName",
  "version": "1.0.3",
  "author": "Ionic Framework",
  "homepage": "http://ionicframework.com/",
  "private": true,
  "scripts": {
    "clean": "ionic-app-scripts clean",
    "build": "ionic-app-scripts build --prod",
    "lint": "ionic-app-scripts lint",
    "ionic:build": "ionic-app-scripts build",
    "ionic:serve": "ionic-app-scripts serve"
  },
  "config": {
    "ionic_source_map": "source_map"
  },
  "dependencies": {
    "@angular/common": "4.1.3",
    "@angular/compiler": "4.1.3",
    "@angular/compiler-cli": "4.1.3",
    "@angular/core": "4.1.3",
    "@angular/forms": "4.1.3",
    "@angular/http": "4.1.3",
    "@angular/platform-browser": "4.1.3",
    "@angular/platform-browser-dynamic": "4.1.3",
    "@ionic-native/app-preferences": "4.7.0",
    "@ionic-native/barcode-scanner": "^4.7.0",
    "@ionic-native/core": "4.7.0",
    "@ionic-native/file": "^4.7.0",
    "@ionic-native/printer": "4.7.0",
    "@ionic-native/social-sharing": "^4.7.0",
    "@ionic-native/splash-screen": "4.7.0",
    "@ionic-native/sqlite": "4.7.0",
    "@ionic-native/status-bar": "4.7.0",
    "@ionic/pro": "^1.0.16",
    "@ionic/storage": "^2.1.3",
    "amazon-cognito-identity-js": "^1.26.0",
    "angular2-signaturepad": "^2.6.1",
    "aws-sdk": "^2.156.0",
    "cordova-browser": "~5.0.3",
    "cordova-pdf-generator": "^2.0.0",
    "cordova-plugin-add-swift-support": "^1.7.1",
    "cordova-plugin-android-permissions": "^1.0.0",
    "cordova-plugin-barcodescanner": "^0.7.4",
    "cordova-plugin-certificates": "^0.6.4",
    "cordova-plugin-compat": "^1.2.0",
    "cordova-plugin-device": "^1.1.7",
    "cordova-plugin-file": "^6.0.1",
    "cordova-plugin-http": "^1.2.0",
    "cordova-plugin-ionic": "^2.0.4",
    "cordova-plugin-printer": "^0.7.3",
    "cordova-plugin-splashscreen": "^4.0.0",
    "cordova-plugin-sslcertificatechecker": "^5.1.0",
    "cordova-plugin-statusbar": "^2.4.1",
    "cordova-plugin-whitelist": "^1.3.3",
    "cordova-plugin-x-socialsharing": "^5.4.0",
    "es6-promise-plugin": "^4.2.2",
    "ionic-angular": "3.9.2",
    "ionic-plugin-keyboard": "^2.2.1",
    "ionicons": "3.0.0",
    "phonegap-plugin-barcodescanner": "^7.1.2",
    "rxjs": "^5.4.2",
    "sw-toolbox": "3.6.0",
    "zone.js": "0.8.12"
  },
  "devDependencies": {
    "@ionic/app-scripts": "3.1.9",
    "@types/node": "^8.5.1",
    "json-loader": "^0.5.7",
    "typescript": "2.3.4",
    "webpack": "^3.8.1"
  },
  "description": "An Ionic project",
  "cordova": {
    "plugins": {
      "cordova-plugin-device": {},
      "cordova-plugin-statusbar": {},
      "cordova-plugin-android-permissions": {},
      "cordova-plugin-sslcertificatechecker": {},
      "cordova-plugin-certificates": {},
      "cordova-plugin-http": {},
      "cordova-plugin-whitelist": {},
      "cordova-plugin-file": {},
      "cordova-pdf-generator": {},
      "cordova-plugin-splashscreen": {},
      "cordova-plugin-ionic": {
        "APP_ID": "e363211c",
        "CHANNEL_NAME": "Production",
        "UPDATE_METHOD": "background",
        "UPDATE_API": "https://api.ionicjs.com",
        "MAX_STORE": "2"
      },
      "ionic-plugin-keyboard": {},
      "cordova-plugin-x-socialsharing": {},
      "cordova-plugin-printer": {},
      "cordova-plugin-barcodescanner": {}
    },
    "platforms": [
      "browser"
    ]
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...