我試圖使用FacebookConnect插件的PhoneGap,發現它並沒有不管登錄成功的回調被打破,經過一番周圍挖和Java記錄跟蹤我將問題簡化成這個簡單的例子,它類似於我在FacebookConnect插件中發現的同樣的問題...科爾多瓦插件回調從UI線程的JavaScript似乎在PhoneGap的3.3
這個非常簡單的測試會失敗,幾乎與cordova的最簡單的插件dev片段相同。
在JS:
var cordova = window.cordova || window.Cordova;
MyTest = {
test: function() {
console.log("Testing");
alert("Testing");
cordova.exec(function(){
console.log("successful return from test");
},
function(){
console.log("failed return");
}, 'org.apache.cordova.mything.MyTest', 'test', []);
}
}
在Java:
public boolean execute(String action, JSONArray args, final CallbackContext callbackContext) throws JSONException {
if (action.equals("test")) {
//Call Back HERE would work
callbackContext.success(new JSONObject("{}"));
cordova.getActivity().runOnUiThread(new Runnable() {
public void run() {
//Callback here DOES NOT WORK
//callbackContext.success(new JSONObject());
};
});
}
}
在這個問題的內容:
- 「工作」 從JavaScript的「成功返回意味着日誌消息 測試「打印在日誌中。
- 「不工作」是指沒有印刷從JavaScript日誌消息 (既不成功也不失敗),呼叫 只是去到的空白。
我是phonegap和cordova的新手,所以我不知道這個特定的測試是否可以在以前的版本中工作。
我的測試設備是三星Galaxy S3運行通過的PhoneGap 3.3 CLI(I從NPM拉年12月,16日,2013年最新)
任何人都知道/或測試了它這個版本的Android 4.1.2編譯此組合工作還是隻是我的設備/操作系統?
你可以使用這個插件https://github.com/studiosoton/faceGap而不使用本地插件檢查它 –
或者你必須更新插件,如phonegap 3 http://docs.phonegap.com/en/edge/guide_hybrid_plugins_index。 md.html#Plugin%20Development%20Guide –
mohamd,我還沒有嘗試過這個鏈接,但是我做了很多研究,我不認爲有可能在沒有本地應用的情況下在本地應用登錄Facebook代碼插件。從本質上講,你指出的git看起來不像是一個phonegap插件,因爲它純粹是基於javascript的,所以它看起來只是facebook的oauth http調用的一個包裝。 – JChow