首页 > 解决方案 > 在本机应用程序中访问“Titanium.App.Properties”

问题描述

TLDR:是否有任何本地方式可以访问适用于 Android 和 iOS 的 Titanium.App.Properties?

我正在开发一个项目,其中原始应用程序是用 Titanium 制作的,而新的更新版本是用 Xamarin 构建的。

最初的开发人员认为在其中保存一个设备令牌Titanium.App.Properties将用于访问所有用户的历史记录和购买是明智的。

设备令牌未存储在其他任何地方,因此获取它的唯一方法是通过Titanium.App.Properties.

我有他们用来存储令牌的密钥。所以我的问题是,是否有任何本地方式可以访问Titanium.App.PropertiesAndroid 和 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 方法来访问这些属性。”

标签: titaniumtitanium-mobiletitanium-modulestitanium-android

解决方案


对于 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");


推荐阅读