こんにちは、Print プラグインまたは Phonegap プラグインのいくつかの部分でかなり混乱しています。独自のプラグインを作成してもコードを実装できましたが、objective-c (xcode) から javascript に値を返すことはなかったので、理解しやすいと言っても過言ではありませんでした。
このコードで:
https://github.com/phonegap/phonegap-plugins/blob/master/iPhone/PrintPlugin/PrintPlugin.js
このコード ブロックについて:
PrintPlugin.prototype.callbackMap = {};
PrintPlugin.prototype.callbackIdx = 0;
PrintPlugin.prototype.print = function(printHTML, success, fail, options) {
if (typeof printHTML != 'string'){
console.log("Print function requires an HTML string. Not an object");
return;
}
//var printHTML = "";
var dialogLeftPos = 0;
var dialogTopPos = 0;
if (options){
if (options.dialogOffset){
if (options.dialogOffset.left){
dialogLeftPos = options.dialogOffset.left;
if (isNaN(dialogLeftPos)){
dialogLeftPos = 0;
}
}
if (options.dialogOffset.top){
dialogTopPos = options.dialogOffset.top;
if (isNaN(dialogTopPos)){
dialogTopPos = 0;
}
}
}
}
var key = 'print' + this.callbackIdx++;
window.plugins.printPlugin.callbackMap[key] = {
success: function(result) {
delete window.plugins.printPlugin.callbackMap[key];
success(result);
},
fail: function(result) {
delete window.plugins.printPlugin.callbackMap[key];
fail(result);
},
};
var callbackPrefix = 'window.plugins.printPlugin.callbackMap.' + key;
return PhoneGap.exec("PrintPlugin.print", printHTML, callbackPrefix + '.success', callbackPrefix + '.fail', dialogLeftPos, dialogTopPos);
};
特にこのコード行:
PrintPlugin.prototype.callbackMap = {};
PrintPlugin.prototype.callbackIdx = 0;
その2行のコードが何をするのか、そしてxcodeからjavascriptに値を返したいときに組み込みまたはフォローすることがどういうわけか重要である理由に混乱しています(注:必要なときに組み込みまたはフォローすることが何らかの形で重要である理由を私が言っていますxcodeからjavascriptに値を返すには、これまでに理解したことに基づいてこれを言っています)
2 行のコードがどのように機能し、その目的は何かを誰か説明できますか? ありがとうございました。