0

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 方法来访问这些属性。”

4

2 回答 2

1

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

于 2019-02-18T19:03:51.957 回答
0

对于 Android,TiProperties.java 文件说:

使用给定名称和上下文实例化私有 SharedPreferences 集合。

  • 这意味着没有其他 Android 应用程序可以访问它们的键和值。

您说您使用令牌来获取历史记录。是来自服务器吗?那么令牌是否发送到服务器以执行请求?

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

于 2019-02-17T17:37:30.640 回答