是否Parse.com JS工作作为一个Chrome扩展

Does Parse.com JS work as a Chrome Extension

本文关键字:一个 扩展 Chrome com Parse JS 工作 作作 是否      更新时间:2023-09-26

我是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