我目前正在开发,我提出了以下问题:我如何/应该存储基本信息,例如设备之间的解锁项目和级别。当然,我将它们存储在首选项文件中。
但是如果用户购买了一部新手机并想继续在那里玩呢?(共享-)首选项不会重复。
因此,有没有(来自谷歌)推荐的方式(云?)来解决这个问题?
我目前正在开发,我提出了以下问题:我如何/应该存储基本信息,例如设备之间的解锁项目和级别。当然,我将它们存储在首选项文件中。
但是如果用户购买了一部新手机并想继续在那里玩呢?(共享-)首选项不会重复。
因此,有没有(来自谷歌)推荐的方式(云?)来解决这个问题?
我不是专家,但我这样做的方法是使用在线 SQL 数据库。让设备连接到它,并保存/加载您需要的任何数据。我知道这不适用于文件,仅适用于基于文本的信息。我也使用 Flash 执行此操作。如果这是您的路线,我可以分享一些代码。
好的,所以如果你在 Flash 中执行此操作,你需要 3 样东西:Flash (duh)、PHP 文件和 SQL 服务器(我有一个 MYSQL 服务器)。
它的工作原理是 flash 会加载 php,php 会做它的事情(比如对数据库进行更改)并将结果返回到 flash。
假设我们想从数据库中获取所有用户名。
数据库
表名称为“Players”,其中有一列称为“u_id”
闪光
var loader:URLLoader; //makes a loader that will "load" the php page
public function DoIt()
{
loader = new URLLoader();
loader.addEventListener(Event.COMPLETE, loaderComplete);
loader.load(new URLRequest("http://yourDomain.com/thePHPFile.php?arg=42"));
}
public function loaderComplete(e:Event):void
{
var returnXML:XML; //we are assuming the return values are in xml format, trust me, this might be easier
for each (var ListItem:XML in returnXML..Users) //you might need to change this "users" to be the root of the xml file
{
var userName:String = ListItem.u_id.toString();
//you can do what you want with the data here
}
}
PHP
现在可能不需要它,但我尝试确保 PHP 文件和数据库位于同一主机上,以便我可以将“localhost”作为主机名
<?php
$argumentVar = $_GET["arg"]; //not using this, just showing it's possible
$connect = mysql_connect("localhost", "db_username", "db_password");
if(!$connect)
{
die("error connecting to DB" . mysql_error());
}
$db_selected = mysql_select_db("the_name_of_the_db", $connect);
if(!$db_selected)
{
die("error selecting db" . mysql_error());
}
$table_name = "Players" //this is the name of your database
$sql = "SELECT * FROM $table_name;"; //not sure if you need ending ';'
$dbresult = mysql_query($sql, $connect); //this is where all your data comes into
//and now to save all the information to a xml file
$doc = new DOMDocument('1.0');
$root = $doc->createElement('root');
$root = $doc->appendChild($root);
while($row = mysql_fetch_assoc($dbresult))
{
$occ = $doc->createElement($table_name);
$occ = $root->appendChild($occ);
foreach ($row as $fieldname => $fieldvalue)
{
$child = $doc->createElement($fieldname);
$child = $occ->appendChild($child);
$value = $doc->createTextNode($fieldvalue);
$value = $child->appendChild($value);
}
}
$xml_string = $doc->saveXML();
echo $xml_string;
?>
好吧,去玩吧,它应该会让你走上正确的道路。
我认为最好的方法是维护一个在线数据库,该数据库会定期更新每个注册用户的最新信息。因此,与其将所有内容存储在本地,不如将其存储在远程服务器上,并在需要时发送给用户。所以只要用户拥有自己为应用创建的账户,就不会丢失任何数据。