我有兴趣创建一个利用现有PHP/MySQL应用程序的IOS应用程序。将我的IOS应用程序连接到现有的PHP应用程序
目前,我的应用程序是基于Web的。我想在不重新创建我已经在PHP中实现的逻辑的情况下启用该工具的移动版本。基本上,我想保持我的IOS应用程序的精简并使用某种形式的RPC与我的PHP代码进行交互。
我想通过使用XML创建一个查询/响应系统来做一些自定义的事情。但是,我担心我正在重新创造轮子。任何关于最佳方式的建议?
我有兴趣创建一个利用现有PHP/MySQL应用程序的IOS应用程序。将我的IOS应用程序连接到现有的PHP应用程序
目前,我的应用程序是基于Web的。我想在不重新创建我已经在PHP中实现的逻辑的情况下启用该工具的移动版本。基本上,我想保持我的IOS应用程序的精简并使用某种形式的RPC与我的PHP代码进行交互。
我想通过使用XML创建一个查询/响应系统来做一些自定义的事情。但是,我担心我正在重新创造轮子。任何关于最佳方式的建议?
与JSON合作使用PHP使PHP和iOS之间的通信非常容易。
在服务器上,阵列可以如下被格式化为JSON:
服务器示例
<?php
$response = cydia_check("eswick", $_GET['package'], $_GET['version'], $_GET['udid'], $_SERVER['REMOTE_ADDR'], "local", $apikey);//Example function, returns an array. (In this case, checks an activation server to verify if the app was really purchased.)
print json_encode($response);//Prints JSON encoding of array to stdout.
?>
作为iOS 5的的,由于微博Foundation包含一个类,可以很方便地解析JSON。这里是调用和分析上面的PHP函数的一些示例代码:
客户实例
#define PACKAGE "com.eswick.drmtest"
#define VERSION "0.8"
NSString *requestAddress = [NSString stringWithFormat:@"http://www.eswick.com/check.php?package=%@&version=%@&udid=%@", PACKAGE, VERSION, MGCopyAnswer(kMGUniqueDeviceID)];
NSMutableURLRequest *request =[NSMutableURLRequest requestWithURL:[NSURL URLWithString:requestAddress]];
NSError *error = [[NSError alloc] init];
NSHTTPURLResponse *responseCode = nil;
NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&responseCode error:&error];//Get the output of the PHP page we loaded.
if(!responseData)
return false;
NSError *parseError = nil;
id result = [NSJSONSerialization JSONObjectWithData:responseData options:0 error:&parseError];//Parse the JSON output from responseData.
if ([result isKindOfClass:[NSDictionary class]]){//Make sure the output is an array.
NSString *state = [result valueForKey:@"state"];//Check the array returned by PHP for a value named 'state'.
if (!state){//If it doesn't exist, fail.
return false;
}else{
if([state isEqualToString:@"purchased"])//If app is truly purchased, return success.
return true;
}
}
这应该给你这是如何工作的总体思路。你将不得不改变它以适应你的需求,但这是一个非常基本的概念。
显然,不实际上使用本例如代码为DRM。
完美 - 谢谢! –
很高兴能帮到你!请记住,如果这解决了您的问题,请将其标记为答案(并且最好将其提升为D)。它有助于回答者的声誉! – eswick
使用JSON而不是XML,因为iOS 5苹果已经很容易与 – meda
工作,为什么不使用UR现有应用在PHP中创建一个API和移动应用查询的API?这样你就可以精确控制你想要在外部暴露的东西 – everconfusedGuy