在本地应用程序中访问`Titanium.App.Properties`

时间:2019-02-12 15:00:07

标签: titanium titanium-mobile titanium-modules titanium-android

TLDR:是否可以通过任何本机方式访问Android和iOS的Titanium.App.Property?

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

最初的开发人员认为,将设备令牌保存在console.log("hello");中是明智之举,该令牌将用于访问所有用户的历史记录和购买信息。

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

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


doc中有一个段落: “ 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方法来访问这些属性。”

2 个答案:

答案 0 :(得分: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");

答案 1 :(得分:0)

对于Android,TiProperties.java文件显示:

  

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

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

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

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