当用户将扩展程序安装到浏览器时,有没有办法将值(存储在服务器变量上)存储到在crossrider上创建的扩展名?当用户启动浏览器插件的安装时,就会出现这种情况!
说出这样的情况:我成了浏览器扩展程序,并在我的网站上显示下载和安装扩展程序的链接。现在我需要存储从php获取的值并将其存储在扩展中的某个地方,除非卸载扩展本身,否则用户无法删除。
答案 0 :(得分:2)
只要可以使用URL获取服务器变量(例如,创建一个只返回服务器变量值的php页面),就可以在扩展中执行此操作。
第1步
根据您是否需要处理返回的数据,您可以使用以下方法之一来获取和保存值。
注意:我建议您在background.js
文件中执行此步骤,以便仅在首次运行扩展程序时执行一次。
方法1 [响应不需要处理]:使用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
);
}
方法2 [响应需要处理]:使用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");