मैं एंड्रॉइड के लिए Phonegap स्रोतों को देख रहा था, और यह सत्यापित करने की कोशिश कर रहा था कि उनकी notification.alert()
विधि मूल जावास्क्रिप्ट alert()
फ़ंक्शन पर बस प्रतिनिधि हो। उनके कोड है:फोनगैप और प्रॉम्प्ट()
Notification.prototype.alert = function(message, completeCallback, title, buttonLabel) {
var _title = (title || "Alert");
var _buttonLabel = (buttonLabel || "OK");
PhoneGap.exec(completeCallback, null, "Notification", "alert", [message,_title,_buttonLabel]);
};
कौन सा "अलर्ट" की तरह मुझे लग रहा है exec()
में आह्वान करने के लिए समारोह के नाम के रूप में व्याख्या की जाएगी, लेकिन exec()
कर रही है:
PhoneGap.exec = function(success, fail, service, action, args) {
try {
var callbackId = service + PhoneGap.callbackId++;
if (success || fail) {
PhoneGap.callbacks[callbackId] = {success:success, fail:fail};
}
//using: ["Notification", "alert", callbackId, true]
var r = prompt(PhoneGap.stringify(args),
"gap:"+PhoneGap.stringify([service, action, callbackId, true]));
//...
} catch (e2) {
console.log("Error: "+e2);
}
};
अब PhoneGap.stringify()
बस ले कर जाता है JSON.stringify()
, इसलिए फोनगैप कोड एपीआई विधि को prompt()
फ़ंक्शन को दो JSON ऑब्जेक्ट/सरणी के साथ निष्पादित कर रहा है। मेरी धारणा यह है कि prompt()
native JavaScript prompt() function है (मुझे अपने जावास्क्रिप्ट कोड में कुछ भी नहीं मिला है जो इस फ़ंक्शन को ओवरराइड करेगा)। यदि ऐसा है, तो यह कोड कैसे काम कर रहा है?
वे विभिन्न अन्य स्थानों में prompt()
के समान इस्तेमाल करते हैं, साथ ही:
PhoneGap.JSCallbackPort = prompt("getPort", "gap_callbackServer:");
वहाँ कुछ खास तरह वे prompt()
बुला रहे हैं के बारे में (प्रपत्र gap.*:.*
का एक दूसरा पैरामीटर शामिल करके विशेष रूप से) कि है कुछ कस्टम व्यवहार सक्षम करने? या क्या उन्होंने किसी भी तरह से prompt()
फ़ंक्शन के डिफ़ॉल्ट व्यवहार को उनके जावास्क्रिप्ट कोड के बाहर कहीं भी ओवरराइड किया है?
ध्यान दें कि यह विशेष रूप से फोनगैप के एंड्रॉइड संस्करण पर लागू होता है, क्योंकि अन्य संस्करण एपीआई कॉल निष्पादित करने के लिए थोड़ा अलग तंत्र का उपयोग करते हैं।
प्रॉम्प्ट एक स्ट्रिंग लौटाता है। गलत क्या है? – xdazz
क्या गलत है कि 'prompt()' का मानक संस्करण उपयोगकर्ता को एक संवाद प्रदर्शित करता है। हालांकि यह नहीं हो रहा है कि यहां क्या हो रहा है। इन 'प्रॉम्प्ट()' कॉल के परिणामस्वरूप कोई संवाद प्रदर्शित नहीं होता है, इसके बजाय फोनगैप एपीआई के कुछ अन्य हिस्से को बुलाया जाता है। संक्षेप में, वे 'प्रॉम्प्ट()' का उपयोग अपने प्राथमिक एपीआई एंट्री पॉइंट के रूप में कर रहे हैं, और मैं जानना चाहता हूं कि कैसे/क्यों। – aroth