1

当用户将扩展程序安装到他的浏览器时,有什么办法可以将值(存储在服务器变量上)存储到在 crossrider 上创建的扩展程序中?这是用户启动浏览器插件安装时的事情!

假设这样的情况:我做了一个浏览器扩展,并在我的网站上显示下载和安装扩展的链接。现在我需要存储一个取自 php 的值并将其存储在本地扩展中的某个位置,除非卸载扩展本身,否则用户无法删除该值。

4

1 回答 1

2

只要可以使用 URL 获取服务器变量(例如,创建一个简单地返回服务器变量值的 php 页面),您就可以在扩展中执行此操作。

步骤1


根据您是否需要处理返回的数据,您可以使用以下方法之一来获取和保存值。

注意:我建议在您的文件中实施此步骤,background.js以便在扩展首次运行时仅执行一次。

方法一响应不需要处理】:使用appAPI.db.setFromRemote()方法获取值并保存。

var serverVar = appAPI.db.get('serverVar');
if (!serverVar) {
    appAPI.db.setFromRemote(
        "<URL>", // URL to fetch the server variable
        'serverVar' // Name of key to use for saving the value
    );
}

方法二响应确实需要处理】:使用appAPI.request.get()方法取值,处理响应,然后使用appAPI.db.set()方法【更多信息见http:// docs.crossrider.com/#!/api/appAPI.db-method-set] 保存值:

var serverVar = appAPI.db.get('serverVar');
if (!serverVar) {
    appAPI.request.get(
        "<URL>", // URL to fetch the server variable
        function(response, headers) { // onSuccess callback function
            // process the reponse as required
            // e.g. trim leading and trailing spaces
            var myProcessedData = response.replace(/^\s\s*/, '').replace(/\s\s*$/, '');

            // save data to local db
            appAPI.db.set('serverVar', myProcessedData);
    });
}

第2步


将服务器变量保存到本地数据库后,可以使用 appAPI.db.get() 方法从扩展后台范围或页面范围内检索它 [有关更多信息,请参阅 http://docs.crossrider.com/ #!/api/appAPI.db-method-get],如下:

var serverVar = appAPI.db.get("serverVar");
于 2012-11-11T11:50:32.507 回答