Как сохранить значение (хранящееся в переменной сервера PHP) в расширении, сделанном в кроссрайдере, когда оно устанавливается в браузер
Есть ли способ сохранить значение (хранящееся в переменной сервера) в расширении, сделанном в кроссрайдере, пока пользователь устанавливает расширение в свой браузер? Это что-то, когда пользователь начинает установку надстройки браузера!!
Скажем, что-то вроде: я сделал расширение для браузера, и отображаю ссылку для загрузки и установки расширения на моем сайте. Теперь мне нужно сохранить значение, взятое из php, и сохранить его локально где-то в расширении, которое пользователь не может удалить, если не удалит само расширение.
1 ответ
Вы можете сделать это из расширения, если переменная сервера может быть выбрана с помощью 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");