1

こんにちは、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 行のコードがどのように機能し、その目的は何かを誰か説明できますか? ありがとうございました。

4

0 に答える 0