Javascript wp8上的openpgp.js错误
我正在我的应用程序中使用一个库,它是用ApacheCordova创建的 以下是代码的一部分:Javascript wp8上的openpgp.js错误,javascript,cordova,windows-phone-8,openpgp,openpgp.js,Javascript,Cordova,Windows Phone 8,Openpgp,Openpgp.js,我正在我的应用程序中使用一个库,它是用ApacheCordova创建的 以下是代码的一部分: var publicKey = openpgp.key.readArmored(_publicKey); openpgp.encryptMessage(publicKey.keys, text).then(function (pgpMessage) { // success callback(pgpMessage);
var publicKey = openpgp.key.readArmored(_publicKey);
openpgp.encryptMessage(publicKey.keys, text).then(function (pgpMessage) {
// success
callback(pgpMessage);
}).catch(function (error) {
// failure
console.error(error);
});
它可以正常工作,但不适用于WP8。如果失败,则会导致openpgp变量未定义。在该库源代码中,一开始就有这样的代码:
!function (e) {
"object" == typeof exports ? module.exports = e() : "function" == typeof define && define.amd ? define(e) : "undefined" != typeof window ? window.openpgp = e() : "undefined" != typeof global ? global.openpgp = e() : "undefined" != typeof self && (self.openpgp = e())
}
所以应该定义openpgp。我怎样才能让它工作
更新
我添加了var openpgp=window.openpgp;错误消失了。现在it joust无法对消息进行加密,而且很难调试,因为库代码已经缩小了所以,对于任何带着同样问题来到这里的人来说 使用var openpgp=window.openpgp;避免未定义的错误。 下一个问题是getRandomValues函数内部-存在一个异常,没有安全的随机数生成器可用。。为了避免这个错误,我把最后一个with exception语句改为 var sjcl=window.sjcl; 如果sjcl.random.isReady{ var buf=新的Uint8Array1; 字节=sjcl.random.randomWordsbuf.length; buf.setbytes; }否则{ var字节=[]; 对于变量i=0;i