我正在創建一個應用程序的初步階段,將匿名發送來自用戶的信息給我。如何匿名提交信息從應用程序
由於信息的性質的提交,用戶可以選擇這樣做沒有被識別(因此不能使用電子郵件)
前面我已經創建了一個應用程序,它的電子郵件的文本字段到一個專用的電子郵件地址,但我希望能夠實現這一點,而不使用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