titanium - 在本机应用程序中访问“Titanium.App.Properties”
问题描述
TLDR:是否有任何本地方式可以访问适用于 Android 和 iOS 的 Titanium.App.Properties?
我正在开发一个项目,其中原始应用程序是用 Titanium 制作的,而新的更新版本是用 Xamarin 构建的。
最初的开发人员认为在其中保存一个设备令牌Titanium.App.Properties
将用于访问所有用户的历史记录和购买是明智的。
设备令牌未存储在其他任何地方,因此获取它的唯一方法是通过Titanium.App.Properties
.
我有他们用来存储令牌的密钥。所以我的问题是,是否有任何本地方式可以访问Titanium.App.Properties
Android 和 iOS?
从此文档中有一段: “iOS 和 Android 都将应用程序属性存储在文件系统上的特殊文件中。原生地,iOS 属性被称为 NSUserDefaults,它们存储在应用程序库目录中的 .plist 文件中。Android 将它们存储在标准文件中xml 文本文件位于 /data/data/com.domainname.appname/shared_prefs/titanium.xml。Titanium 提供了一种通过 Titanium.App.Properties API 设置和获取应用程序属性的统一方法。”
从这个SO问题看来,需要使用一个模块: “其他 iOS 应用程序无法访问这些属性,而原生 Android 模块必须使用 Titanium 模块 API TiApplication.getAppProperties 方法来访问这些属性。”
解决方案
对于 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");
推荐阅读
- c++ - 有没有办法让应用程序的路径自动将其添加到注册表并在 C++ 中与 Windows 启动一起运行?
- javascript - 将两个元素连接成数组中的字符串类型元素
- arrays - 为什么我没有正确打印我的字符串数组?
- ajax - Symfony 5 ajax 发布表单
- azure - Get-AzRecoveryServicesBackupItem:无法验证参数“容器”上的参数。参数为 null 或为空
- asp.net-core - 如何将 Identity server 4.0 添加为外部提供者?
- laravel - Laravel 8 - Envoyer 和 Homestead 部署问题
- solr - TYPO3 Solr:如何向索引器添加其他字段?
- python - datetime:获取带有时区偏移的时间戳
- android - Firebase Google Auth 无法在 Cordova Android 上运行