我是Parse和Chrome扩展开发的新手,所以这可能是一个非常基本的问题:
我试图开发一个chrome扩展,读取和写入数据到Parse.com。我目前的应用程序很简单,虽然它在Chrome(作为浏览器)中工作完美,但它不能作为Chrome扩展。有什么我可能忽略的吗?
螺母和螺栓:
我有一个index.html指向jquery.min.js, parse-1.2.18.min.js, myownscript.js
myownscript.js如下所示:
$(function() {
Parse.$ = jQuery;
Parse.initialize("OMITTED",
"OMITTED");
var Users = Parse.Object.extend("Users");
var users = new Users();
$("button").click(function(){
users.save({name: $("#name").val()}, {
success: function(object) {
$(".success").show();
},
error: function(model, error) {
$(".error").show();
}
});
users.save({email: $("#email").val()});
});
});
您需要在解析初始化之前粘贴以下代码:
function ChromeStorageController(){
var store = {};//Object.create(null);
store.async = 1;
store.getItemAsync = function(path){
var get = new Parse.Promise()
chrome.storage.local.get(path,function(data){
//careful here: get return a key,value pair but we only need the value
get.resolve(data[path]);
});
return get;
};
store.setItemAsync = function(path,value){
var set = new Parse.Promise()
var item = Object.create(null);
item[path] = value;
chrome.storage.local.set(item, function(err){
if(err){
set.reject(err);
}else{
set.resolve(value);
}
});
return set;
};
store.removeItemAsync = function(path){
var remove = new Parse.Promise()
chrome.storage.local.remove(path,function(err){
if(err){
remove.reject(err);
}else{
remove.resolve();
}
})
return remove;
};
store.clear = function(){
chrome.storage.local.clear();
};
return store;
}
Parse.CoreManager.setStorageController(ChromeStorageController())
解决方案张贴在这里:https://github.com/ParsePlatform/Parse-SDK-JS/issues/72
thanks to quorak