Доступ к `Titanium.App.Properties` в собственном приложении - PullRequest
0 голосов
/ 12 февраля 2019

TLDR: есть ли какой-нибудь собственный способ доступа к свойствам Titanium.App.Properties для Android и iOS?

Я работаю над проектом, в котором исходное приложение было создано сTitanium, и новая обновленная версия построена на Xamarin.

Первоначальные разработчики решили, что было бы разумно сохранить токен устройства в Titanium.App.Properties, который будет использоваться для доступа ко всей истории пользователей и покупкам.

Токен устройства не хранится где-либо еще, поэтому единственный способ получить его - через Titanium.App.Properties.

У меня есть ключ, который они использовали для хранения токена.Поэтому у меня вопрос: есть ли какой-нибудь собственный способ доступа к Titanium.App.Properties для Android и iOS?


Из этого doc есть абзац: "И iOS, и Android хранят свойства приложения в специальных файлах в файловой системе. Собственно, свойства iOS называются NSUserDefaults, которые хранятся в файлах .plist в каталоге библиотеки приложения. Android хранит их в стандартных текстовых файлах xml по адресу / data / data /com.domainname.appname / shared_prefs / titanium.xml. Titanium предоставляет единые средства для установки и получения свойств приложения через API-интерфейс Titanium.App.Properties. "

Из этого SO вопрос звучит так, как будто требуется использовать модуль: "Другие приложения iOS не могут получить доступ к этим свойствам, и для доступа к этим свойствам собственные модули Android должны использовать метод API TiApplication.getAppProperties модуля Titanium."

Ответы [ 2 ]

0 голосов
/ 18 февраля 2019

Для Android свойства Titanium хранятся в общих настройках с путем titanium.

ISharedPreferences TitaniumSharedPreferences = CrossCurrentActivity.Current.Activity.GetSharedPreferences("titanium", Android.Content.FileCreationMode.Private);

Затем просто используйте общие настройки, чтобы получить любое нужное свойство.

var userToken = TitaniumSharedPreferences.GetString("UserToken", string.Empty);


Для iOS это проще, она просто использует NSUserDefaults.

var userToken = NSUserDefaults.StandardUserDefaults.StringForKey("UserToken");

0 голосов
/ 17 февраля 2019

Для Android в файле TiProperties.java написано:

Создание частной коллекции SharedPreferences с указанным именем и контекстом.

  • Это означает, что никакое другое приложение Android не будет иметьдоступ к их ключам и значениям.

Вы говорите, что используете токен для получения истории.Это с сервера?Так отправляется ли токен серверу для выполнения запроса?

С другой стороны: у вас есть исходный код приложения Ti?Создайте обновление, которое будет хранить токен другим способом.

...