Mah*_*iya 5 plugins android cordova
我开发了一个Android PhoneGap插件.该插件已成功调用,但未调用回调.我不知道我错过了什么.
有没有人知道在没有调用回调时可能出现什么问题?
以下是我的代码:
var SharedPreferencePlugin = function() {};
SharedPreferencePlugin.prototype.getvalues = function(content, success, fail) {
return PhoneGap.exec(
function(args) {
console.log("success called from plugin's js file");
},
function(args) {
console.log("failure called from plugin's js file");
},
'SharedPreferencePlugin',
'getvalues',
[content]
);
};
SharedPreferencePlugin.prototype.update = function(itemName, success, fail) {
return PhoneGap.exec(
function(args) {
console.log("success called from plugin's js file");
},
function(args) {
console.log("failure called from plugin's js file");
},
'SharedPreferencePlugin',
'update',
[itemName]
);
};
PhoneGap.addConstructor(function() {
PhoneGap.addPlugin('SharedPreferencePlugin', new SharedPreferencePlugin());
});
Run Code Online (Sandbox Code Playgroud)
public class SharedPreferencePlugin extends Plugin{
public static final String GET_ACTION = "getvalues";
public static final String UPDATE_ACTION = "update";
static Context staticContext = MainActivity.staticContext;
SharedPreferences dataStorage = staticContext.getSharedPreferences(MainActivity.PREFS_NAME, 0);
public PluginResult execute(String action, JSONArray data, String callbackId)
{
Log.d("SharedPreferencePlugin", "Plugin Called with action: " + action);
PluginResult result = null;
if(action.equals(GET_ACTION))
{
Log.d("SharedPrferencePlugin", "inside if for 'getvalues'");
JSONArray savedData = getPreferences();
Log.d("SharedPreferencePlugin", "Data: " + savedData);
result = new PluginResult(Status.OK, savedData);
}
else if(action.equals(UPDATE_ACTION))
{
try
{
updateSharedPreferences(data.getJSONObject(0).getString("itemName"));
JSONObject jsonObject = new JSONObject();
jsonObject.put("status", "success");
result = new PluginResult(PluginResult.Status.OK, jsonObject);
}
catch(JSONException ex)
{
Log.d("SharedPreferencePlugin", "Got JSONException: " + ex.getMessage());
result = new PluginResult(PluginResult.Status.JSON_EXCEPTION);
}
}
else
{
result = new PluginResult(PluginResult.Status.JSON_EXCEPTION);
Log.d("SharedPreferencePlugin", "Invalid action: " + action + " obtained.");
}
return result;
}
public void updateSharedPreferences(String itemName)
{
Log.d("SharedPreferencePlugin", "Inside updateSharedPreferences, value passed: " + itemName);
SharedPreferences tmpPreferenceReference = staticContext.getSharedPreferences(MainActivity.PREFS_NAME, 0);
SharedPreferences.Editor editor = tmpPreferenceReference.edit();
if(itemName.equals(tmpPreferenceReference.getString(MainActivity.NAME_ITEM1, "")))
{
Integer tmpInt = Integer.parseInt(tmpPreferenceReference.getString(MainActivity.QUANTITY_ITEM1, "0")) - 1;
editor.putString(MainActivity.QUANTITY_ITEM1, tmpInt.toString());
}
editor.commit();
}
protected JSONArray getPreferences()
{
ArrayList<String> arrItemNames = new ArrayList<String>();
ArrayList<String> arrItemQuantities = new ArrayList<String>();
arrItemNames.add(0, dataStorage.getString(MainActivity.NAME_ITEM1, ""));
arrItemNames.add(1, dataStorage.getString(MainActivity.NAME_ITEM2, ""));
arrItemQuantities.add(0, dataStorage.getString(MainActivity.QUANTITY_ITEM1, ""));
arrItemQuantities.add(0, dataStorage.getString(MainActivity.QUANTITY_ITEM2, ""));
//-------------------------------------------------------------------
ArrayList<ArrayList> tempArrayList = new ArrayList<ArrayList>();
tempArrayList.add(arrItemNames);
tempArrayList.add(arrItemQuantities);
JSONArray jsonData = new JSONArray(tempArrayList);
//-------------------------------------------------------------------
return jsonData;
}
}
Run Code Online (Sandbox Code Playgroud)
function test()
{
console.log("Test called");
window.plugins.SharedPreferencePlugin.getvalues({},
function() { // Success function
console.log("success called");
},
function() { // Failure function
console.log('Share failed');
}
);
}
Run Code Online (Sandbox Code Playgroud)
任何帮助都非常感谢.
谢谢.
谢谢你们的回答。
由于问题没有得到解决,我重新创建了一个新的Test项目,一步步确保每一小段代码都能正常工作,慢慢地走向插件想要的目标。
我终于让它与我创建的新项目一起工作,并从头开始再次编写插件。
谢谢。
| 归档时间: |
|
| 查看次数: |
5687 次 |
| 最近记录: |