在本机应用程序中访问“Titanium.App.Properties”

Access `Titanium.App.Properties` in native app

TLDR:对于 Android 和 iOS 是否有任何本地方式来访问 Titanium.App.Properties?

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

最初的开发者认为在 Titanium.App.Properties 中保存一个 Device Token 是明智的,它将用于访问所有用户历史记录和购买。

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

我有他们用来存储令牌的密钥。所以我的问题是,是否有任何本机方法可以访问 Android 和 iOS 的 Titanium.App.Properties


从这个doc有一段话: "Both iOS and Android store app properties in special files on the filesystem. Natively, iOS properties are known as NSUserDefaults, which are stored in .plist files in the application's library directory. Android stores them in standard xml text files at /data/data/com.domainname.appname/shared_prefs/titanium.xml. Titanium provides a uniform means to set and get app properties via the Titanium.App.Properties API."

从这个 SO 问题看来,需要使用一个模块: "Other iOS applications cannot access these properties and native Android modules must use the Titanium module API TiApplication.getAppProperties method to access these properties."

对于 Android,TiProperties.java 文件说:

Instantiates the private SharedPreferences collection with the given name and context.

  • This means no other Android application will have access to they keys and values.

你说你使用令牌来获取历史记录。那是来自服务器吗?那么token是发送给服务器做请求的吗?

另一方面:您拥有Ti应用程序的源代码吗?创建一个将以其他方式存储令牌的更新。

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