我正在创建一个应用程序的初步阶段,将匿名发送来自用户的信息给我。如何匿名提交信息从应用程序
由于信息的性质的提交,用户可以选择这样做没有被识别(因此不能使用电子邮件)
前面我已经创建了一个应用程序,它的电子邮件的文本字段到一个专用的电子邮件地址,但我希望能够实现这一点,而不使用UIMailComposerView。
有没有人在这方面有经验?如果您可以就如何开始提供一些建议,将不胜感激。
我正在创建一个应用程序的初步阶段,将匿名发送来自用户的信息给我。如何匿名提交信息从应用程序
由于信息的性质的提交,用户可以选择这样做没有被识别(因此不能使用电子邮件)
前面我已经创建了一个应用程序,它的电子邮件的文本字段到一个专用的电子邮件地址,但我希望能够实现这一点,而不使用UIMailComposerView。
有没有人在这方面有经验?如果您可以就如何开始提供一些建议,将不胜感激。
看到你从头开始,有很多选择供你考虑。
硬件:购买服务器与您的答案或本主板的正确位置无关,我确信您不需要任何帮助。
软件: PHP - 这里有很多选项。最常用的可能是运行PHP的Apache。有很多网站引导你完成设置过程。你可以谷歌'PHP服务器mac'或类似的更多信息。运行PHP通常是免费的,但也容易增加黑客攻击的风险,除非你是专家。我只提到这一点,因为你表示你的应用处理敏感信息。我不是PHP的专家,因此您可能需要在决定或发布有关此主题的问题之前对此进行自己的研究。
4D - 它是一个拥有自己的脚本语言的关系数据库。它还有一个大型的网络产品库,内置了Web服务器,电子邮件和FTP功能。我已经使用4D超过15年,并发誓,所以我的意见是有点倾向于这种产品。这是昂贵的一面,但提供免费试用。它的数据文件被加密,并具有出色的安全功能。我写了很多iOS应用程序,它们将简单的文本字符串,JSON和照片传递给数据库(并再次传回)。他们的网站是www.4d.com
其他 - 除了我提到的两个之外还有很多其他的选择。谷歌的'数据库的Mac'或类似的列表。
如果你是刚刚开始它会带你一些时间来学习Web服务 - 你将别无选择,只能把自己的在线资源 - 网络服务器 -
我会建议,而不是用来访问Web服务器一个URL方案,特别是如果他们只会发表评论,并且需要非常少的交互:
在Web服务器 - 通过匿名登录启用对服务器的访问,然后您可以使用PHP GET或Post - 如果您希望简单使用得到。
离子您的应用程序设置是这样的:
NSString *stringURL = @"http://www.youtrsite.com/comment?u=anonymous&c=comments%20are%20welcome";
NSURL *url = [NSURL URLWithString:stringURL];
[[UIApplication sharedApplication] openURL:url];
注意URL在使用字符使用能获得空间变得%20和其它特殊字符成为XX%的限制。 Post将允许您传递字段,但需要在应用程序上进行更多设置......只需在Web中查找示例即可。
该控件也会传递给Safari浏览器,用户将不得不导航回到您的应用程序,但它可以让您建立一个网页说 - 谢谢我收到您的评论。
如果您需要与应用程序交互 - 您将别无选择,只能使用Web服务(XMLRPC,SOAP或RESTFul)。
这取决于您想要检索的信息的类型。如果您对应用程序的使用统计信息感兴趣,例如使用流,崩溃,异常等,那么您应该寻找一个专用于此的框架。像谷歌分析。如果您想要用户特定的信息,如个人信息等,您需要运行一个服务器并使用POST请求与该信息。你可以谷歌RESTful为最后一个。
但是,这最后一个方法有点微妙,因为它必须处理用户的隐私,如果声明/处理不当,你的应用程序可能会被拒绝。
编辑:
所以,看你要如何从用户发送匿名信息,这是你必须做的事情。
步骤1) 建立一个网络服务器,您可以在物理上做(可以将您的机器设置为服务器)或使用云计算服务器。我推荐云选项。尝试例如亚马逊EC2,他们有一个免费的层,你可以完美地用于你的目的,除非你期望获得很多流量。
步骤2) 配置服务器,它并不难,但说明依赖于服务器运行的配置。例如,如果您选择使用亚马逊云服务器,则它们会预配置。您必须启用它们才能获得RESTful请求(如发布)。然后将这些信息保存在某个地方,例如,它可能是同一台服务器中的一个mysql数据库。或者像amazon simpledb这样的外部设备,它非常易于使用,但它不是免费的。
步骤3) 在iPhone方面,你必须发送POST请求是这样的:
NSURL *serverURL = [NSURL URLWithString:kServerEndpointAddress];
NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:serverURL
cachePolicy:NSURLRequestReloadIgnoringLocalCacheData
timeoutInterval:60.0];
[theRequest setHTTPMethod:@"POST"];
[theRequest setHTTPBody:postData];
[theRequest setValue:postLength forHTTPHeaderField:@"Content-Length"];
[theRequest setValue:@"application/json" forHTTPHeaderField:@"Current-Type"];
NSOperationQueue *someQueue = [[NSOperationQueue alloc] init];
[NSURLConnection sendAsynchronousRequest:theRequest
queue:someQueue
completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError)
{
if (connectionError)
{
NSLog(@"Connection error: %@",connectionError);
}
else
{
NSString *serverResponse = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"Server response: %@",serverResponse);
}
}];
注意的httpbody是如何编码的NSData的JSON。
这只是一般的指导原则。你必须谷歌关于细节。
您需要一台服务器来运行您的应用可以与之通信的Web服务。 – rmaddy
@rmaddy - 今天第三次你击败我评论秒! – sangony
@rmaddy你能详细解释一下吗?我对IOS开发很陌生。 – scb998