Пишу веб-приложение на связке php/js/html, и через Andriod Studio конвертирую его в приложение для плеймаркета.
Для хранения небольших данных испльзую local.storage в js И что бы приложение могло записать что либо в local.storage открываю в манифесте доступ к записи/чтению
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Но мне нужно только хранить одну строку с данными (ключ) Всё остальное идёт как обычный сайт c обменом данными js-php через ajax
Но пользователи, которые устанавливают приложение, у них идёт запрос "разрешите чтение/запись файлов на ваше устройство". (так как стоит запрос доступа).
Я хочу этого избежать, и слышал что в андроиде есть SharedPreferences - некое место куда можно записать небольшие данные без запроса доступа.
Вопрос: можно ли как-то это использовать для обычных веб приложений, что бы избежать запроса на чтение/запись? Спасибо.
UPD: Нашел переходник, как использовать в js Android SharedPreferences Как я понял - это то что мне нужно, использовать Android SharedPreferences в интерфейсе javascript в вебприложении
Вот ссылка на гитхаб https://github.com/paolorotolo/JSharedPreferences
Но при установке той части которая идет в mainactivity 14-ая строка выдает ошибку:
mStorage = c.getSharedPreferences(c.getResources().getString(R.string.key_file), 0);
а именно светиться красным key_file.
Помогите с этим разобраться. Код из гитхаба написал 4 года назад, может что-то уже не актульно и работает не так как нужно?
c.getResources().getString(R.string.key_file)
- это получение строки из ресурсов (которой у Вас нет).
Вы можете добавить её нажав на красную лампочку, выскакивающую на ошибке и выбрав соответствующее предложение, либо вписать ручками в файл (документация).
Или просто заменить на текстовую константу:
mStorage = c.getSharedPreferences("my_pref_file_name", 0);
То есть в этом выражении строка задаёт имя файла преференсов и определять её в ресурсах не обязательно.
P.S. Я с такой задачей не сталкивался, но мне кажется что для local.storage в js, WebView
должна использовать приватное хранилище, разрешение на доступ к которому не требуется. Может быть Вы не правильно задали настройки (WebSettings
)?
Виртуальный выделенный сервер (VDS) становится отличным выбором
При изучении JavaScript, я дошел до returnНе понимал для чего это надо
Поместил видео с YouTube в теле сайта, используя IFrame APIЕсть ли возможность обойти блокировку автозапуска со звуком видео в браузере Yandex Browser и Chrome?
Этот файл импортирован через const Areas = () => import( /* webpackChunkName: "radar" */ '/radar/Areas
В adSense сделал заглушку, указал в ней ссылку вида <a href="#bottomblock"> а на сайте соответствующий блокВот только при нажатии ничего не происходит,...