我已經開始爲多個平臺開發html應用程序。我最近聽說了科爾多瓦2.0(PhoneGap),自從我一直很好奇,知道這座橋如何運作。 批號行走後,我看到Exec.js是哪裏打來的JS代碼 - >本地發生phoneGap(科爾多瓦)如何在內部工作,特定於iOS
execXhr = execXhr || new XMLHttpRequest();
// Changeing this to a GET will make the XHR reach the URIProtocol on 4.2.
// For some reason it still doesn't work though...
execXhr.open('HEAD', "file:///!gap_exec", true);
execXhr.setRequestHeader('vc', cordova.iOSVCAddr);
if (shouldBundleCommandJson()) {
execXhr.setRequestHeader('cmds', nativecomm());
}
execXhr.send(null);
} else {
execIframe = execIframe || createExecIframe();
execIframe.src = "gap://ready";
,但要明白,是如何工作的,什麼是這裏的概念,什麼是文件: ///!gap_exec或gap://準備好了嗎?以及通話如何提供給較低層(本地代碼層)
感謝一堆提前。
我很早就想到了這件事。但你的回答是正確的。感謝 – 2ndlife
如果您仍在關注科爾多瓦,您能否更新您的回覆?它看起來像exec注入一個帶有src =「gap:// ready」的iframe,這是唯一的js ...然後CDVViewController.m用shouldStartLoadWithRequest攔截所有的'gap'請求,然後CDVCommandQueue.m使用stringByEvaluatingJavaScriptFromString獲取js命令隊列。 – premiumFrye
@Christian Kuetbach:你說過「可能有多個本地電話正在同時運行」。我的情況完全一樣。我需要同時調用一個本地插件方法。我還想從JavaScript插件調用傳遞來自本地插件的響應(作爲使用回調ID的插件結果)。我不確定科爾多瓦在這方面的表現如何。我爲此目的另外提出了一個問題。如果可能的話,你可以看看這個http://stackoverflow.com/q/32139534/2035845。 –