1

嗨,我对 Print Plugin 或 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;

我对这两行代码的作用感到困惑,为什么当你想将值从 xcode 返回到 javascript 时合并或遵循为什么很重要(注意:我说为什么在你想要的时候合并或遵循很重要将值从 xcode 返回到 javascript我是根据我目前所了解的内容说的)

有人可以解释这两行代码是如何工作的以及它们的目的是什么吗?谢谢你。

4

0 回答 0