Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/103.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 爱奥尼亚2卡IO插件-扫描()_Ios_Cordova_Angular_Data Binding_Ionic2 - Fatal编程技术网

Ios 爱奥尼亚2卡IO插件-扫描()

Ios 爱奥尼亚2卡IO插件-扫描(),ios,cordova,angular,data-binding,ionic2,Ios,Cordova,Angular,Data Binding,Ionic2,摘要 我正在我的爱奥尼亚2项目中使用Card IO Cordova插件。它可以正确扫描并允许手动输入。输入信息时,我将扫描/手动输入的值设置为模板中显示的数据绑定值。持卡人姓名、已编辑的卡号和cvv都绑定回我的模板,我在模板中显示了卡的详细信息以供确认。但是,到期日期、到期年份和邮政编码似乎不具有约束力 例如: ---template--- -not working <ion-input type="text" [(ngModel)]="postalCode"></ion-in

摘要

我正在我的爱奥尼亚2项目中使用Card IO Cordova插件。它可以正确扫描并允许手动输入。输入信息时,我将扫描/手动输入的值设置为模板中显示的数据绑定值。持卡人姓名、已编辑的卡号和cvv都绑定回我的模板,我在模板中显示了卡的详细信息以供确认。但是,到期日期、到期年份和邮政编码似乎不具有约束力

例如:

---template---
-not working
<ion-input type="text" [(ngModel)]="postalCode"></ion-input> 

-working
<ion-input type="text" [(ngModel)]="redactedCardNumber"></ion-input> 

---component controller---
goCardIO() {
    console.log("hello")
    this.platform.ready().then(() => {
      CardIO.canScan().then((res: boolean) => {
        if (res) {
          let options = {
            requireCardholderName: true,
            requireExpiry: true,
            requireCCV: true,
            requirePostalCode: true,
            scanInstructions: "Scan the front of your card",
            scanExpiry: true,
            scanCardHolderName: true,
            guideColor: '#12be76',
            hideCardIOLogo: true
          };
          CardIO.scan(options).then((data) => {
            this.setCardData(data);
            console.log("CONSOLEEEE   >>>>>> " + data.postalCode)
          }, err => {
            console.log(err);
            // An error occurred
          });
        }

      });
    });

  }

  setCardData(data: any) {
    this.cardObj = data;
    this.cardHolderName = data.cardholderName;
    this.cvv = data.cvv;
    this.redactedCardNumber = data.redactedCardNumber;
    this.cardNumber = data.cardNumber;

    // Nothing happening here apparently?
    this.expiryMonth =  data.expiryMonth;
    this.expiryYear = data.expiryYear;
    this.postalCode = data.postalCode;
  }
---模板---
-不起作用
-工作
---组件控制器---
goCardIO(){
log(“你好”)
this.platform.ready()。然后(()=>{
CardIO.canScan().then((res:boolean)=>{
如果(res){
让选项={
requireCardholderName:是的,
要求解释:是的,
是的,
要求代码:正确,
扫描说明:“扫描您卡的正面”,
对,,
姓名:对,
指南颜色:“#12be76”,
hideCardIOLogo:是的
};
心脏扫描(选项)。然后((数据)=>{
此.setCardData(数据);
console.log(“CONSOLEEEE>>>>>>”+data.postalCode)
},err=>{
控制台日志(err);
//发生了一个错误
});
}
});
});
}
setCardData(数据:任意){
this.cardObj=数据;
this.cardingName=data.cardingName;
this.cvv=data.cvv;
this.redactedCardNumber=data.redactedCardNumber;
this.cardname=data.cardname;
//显然这里什么都没发生?
this.expiryMonth=data.expiryMonth;
this.expiryYear=data.expiryYear;
this.postalCode=data.postalCode;
}
结论:

---template---
-not working
<ion-input type="text" [(ngModel)]="postalCode"></ion-input> 

-working
<ion-input type="text" [(ngModel)]="redactedCardNumber"></ion-input> 

---component controller---
goCardIO() {
    console.log("hello")
    this.platform.ready().then(() => {
      CardIO.canScan().then((res: boolean) => {
        if (res) {
          let options = {
            requireCardholderName: true,
            requireExpiry: true,
            requireCCV: true,
            requirePostalCode: true,
            scanInstructions: "Scan the front of your card",
            scanExpiry: true,
            scanCardHolderName: true,
            guideColor: '#12be76',
            hideCardIOLogo: true
          };
          CardIO.scan(options).then((data) => {
            this.setCardData(data);
            console.log("CONSOLEEEE   >>>>>> " + data.postalCode)
          }, err => {
            console.log(err);
            // An error occurred
          });
        }

      });
    });

  }

  setCardData(data: any) {
    this.cardObj = data;
    this.cardHolderName = data.cardholderName;
    this.cvv = data.cvv;
    this.redactedCardNumber = data.redactedCardNumber;
    this.cardNumber = data.cardNumber;

    // Nothing happening here apparently?
    this.expiryMonth =  data.expiryMonth;
    this.expiryYear = data.expiryYear;
    this.postalCode = data.postalCode;
  }
我叫goCardIO()。它会打开扫描仪。它扫描卡片。我输入额外的必需信息。我打下一个。然后,我将setCardData()中的“data”设置为绑定到模板的值。我只是不明白为什么postalCode不起作用,但redactedCardNumber起作用。此外,我只能在设备中测试这个插件,而且我似乎无法在xCode中显示任何控制台日志

我的猜测

有一秒钟,我以为我的ios版本没有更新。但是后来我在模板中使用了一些标签,它们被更新了。所以不应该是这样。但是,我在别处看到了控制台日志,但是我在goCardIO()中放置的新日志没有打印出来


我只是访问了错误的字段“数据”对象吗?

我得到了它。扫描后,您将获得以下数据:

{"cardType":"MasterCard","redactedCardNumber":"•••• •••• •••• 1111","cardNumber":"4111111111111111","expiryMonth":2,"expiryYear":2021,"postalCode":"1233","cardholderName":"javier"}
但你不会得到CVV。由于证券方面的原因,你必须写Cvv

这是我的选择:

let options = {
        requireCardholderName: true,
        requireExpiry: true,
        requireCCV: true,
        requirePostalCode: true,
        scanInstructions: "Escanee la parte frontal de su Tarjeta",
        scanExpiry: true,
        scanCardHolderName: true,
        keepApplicationTheme:true,
        guideColor: '#12be76',
        hideCardIOLogo: true,
        useCardIOLogo:false,
    };