Cordova Braintree角度和离子自定义集成iframe问题

Cordova Braintree角度和离子自定义集成iframe问题,cordova,iframe,ionic-framework,braintree,content-security-policy,Cordova,Iframe,Ionic Framework,Braintree,Content Security Policy,我正在尝试集成到离子应用程序中。目前,我的实现可以通过爱奥尼亚服务在浏览器上正常运行,但一旦我在iOS模拟器/设备上运行它,就会出现以下错误: Blocked a frame with origin "https://assets.braintreegateway.com" from accessing a frame with origin "file://". The frame requesting access has a protocol of

我正在尝试集成到离子应用程序中。目前,我的实现可以通过
爱奥尼亚服务
在浏览器上正常运行,但一旦我在iOS模拟器/设备上运行它,就会出现以下错误:

Blocked a frame with origin "https://assets.braintreegateway.com" from accessing
a frame with origin "file://".  The frame requesting access has a protocol of "https",
the frame being accessed has a protocol of "about". Protocols must match.
我知道braintree不完全支持混合应用程序,因为它依赖iframes(这似乎是导致我的问题的原因),但我认为值得在这里寻求帮助


背景: 我基于(开发者@Braintree)的实现。我提出了回购协议,更新了
braintree web
依赖关系,并加入了一个新的指令来实现我对braintree的自定义集成:

braintree-angular.js
/。。。
指令('braintreeCustom',function(){
返回{
限制:“A”,
范围:{
选项:'=braintreeCustom',
},
控制器:函数($scope,$braintree){
var options=$scope.options | |{};
$braintree.setupCustom(选项);
}
}
});
// ...
$braintree.setupCustom=函数(选项){
$braintree.getClientToken().then(函数(令牌){
设置(标记“自定义”,选项);
},函数(错误){
console.error('在'+clientTokenPath'获取客户端令牌时出错,错误);
});
}
然后,为了设置客户端,我的控制器中有以下代码:

controller.js
vm.braintree={
选项:{
enableCORS:是的,
id:“bt表格”,
寄宿地:{
风格:{
“输入”:{
“字体大小”:“16pt”,
“颜色”:“ffc900”
},
},
onFieldEvent:_把手排风窗,
编号:{
选择器:“#托管字段编号”,
},
到期月份:{
选择器:“#托管字段过期月份”,
},
到期年份:{
选择器:“#托管字段过期年份”,
},
cvv:{
选择器:“#托管字段cvv”
}
}
}
};
//////////////////////////////////////////////
功能_把手排风窗(事件){
开关(事件类型){
//案例“焦点”:
案例“模糊”:
console.log(事件);
案例“fieldStateChange”:
开关(事件、目标、字段键){
案件编号:
vm.btNumberValid=event.isValid;
打破
案例“到期月份”:
vm.btExpirationMonthValid=event.isValid;
打破
“到期年份”案例:
vm.btExpirationYearValid=event.isValid;
打破
案例“cvv”:
vm.btCvvValid=event.isValid;
打破
违约:
打破
}
if(事件卡){
控制台日志(事件卡);
vm.braintree.cardCode=event.card.code.name | | |“CVV”;
}
打破
违约:
打破
}
$scope.$digest();
}
最后是我的付款方式:

payment.html

卡号
{{vm.braintree.cardCode}*
实验年
预期月份


我不太确定如何解决这个问题,因此任何建议都将不胜感激。

安装cordova插件白名单,并在您的模拟器中试用它。它已经安装好了,在调试网络调用时,我确实会从braintree收到加载iFrame的内部javascript文件,当他们执行加载iframe时,我得到了这个错误。