Получите вводимый текст от пользователя и сохраните его на веб-сервере с помощью iPhone SDK - PullRequest
0 голосов
/ 25 ноября 2010

Есть ли способ захвата входного текста в iPhone App и отправки этого текста на веб-сервер?

Как мы можем этого достичь?

В основном я хочу получить адрес электронной почты пользователя, подписав его на новостную рассылку внутри приложения.

Спасибо!

Ответы [ 3 ]

1 голос
/ 25 ноября 2010

Создайте простой веб-сервис, который принимает параметры, которые вам нужно передать, и добавьте их в базу данных. Вот простой пример с PHP для сохранения имени пользователя и пароля в базе данных mysql. Ниже вы найдете, как отправить его из приложения, используя запрос POST:

<?

// check if email and password are not blank
if(trim($_POST['email']) != '' && trim($_POST['password']) != '') 
{
    $emailQuery = strtolower(mysql_real_escape_string($_POST['email']));
    $passwordQuery = md5($_POST['password']);
    $host = 'localhost';
    $dbuser = 'username';
    $dbpassword = 'password';
    $dbname = 'databasename';

    /* connect to the db */
    $link = mysql_connect($host,$dbuser,$dbpassword) or die ('Cannot connect to the DB');
    mysql_select_db($dbname,$link) or die('Cannot select the DB');

    /* insert the data into the db */
    $query = "INSERT INTO members VALUES ('','$emailQuery','$passwordQuery')";
    mysql_query($query) or die('Errant query:  '.$query);
    echo "Database updated";
    @mysql_close($link);

} else echo "Mandatory parameters missing";

?>

Затем из вашего приложения вы можете отправить запрос по почте, используя NSURLConnection. Я использую синхронный запрос для простоты, но рекомендую вам проверить документацию для NSURLConnection и как реализовать асинхронные запросы и прочитать ответ через методы делегата:

// login and password are both UITextField instances
        NSString *myRequestString = [NSString stringWithFormat:@"email=%@&password=%@",self.login.text, self.password.text];
    NSData *myRequestData = [NSData dataWithBytes:[myRequestString UTF8String] length:[myRequestString length]];
    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:@"http://domain.com/webservice.php"]]; 
    [request setHTTPMethod: @"POST"];
    [request setHTTPBody: myRequestData];
    NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
    NSString *returnString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];
        // To see what the response from your server is, NSLog returnString to the console or use it whichever way you want it.
    NSLog (@"%@", returnString);

Надеюсь, это поможет. Рог

0 голосов
/ 25 ноября 2010

Самый простой способ (но, как сказал Eimantas, он будет отклонен) - сделать запрос http get на php-файл на вашем веб-сервере, например, * url = www.example.com/myiphonescript.php?q=%@ искать термин. searchTerm - это ваш текстовый ввод. Затем сохраните это значение в php-скрипте в БД или в любом другом месте!

0 голосов
/ 25 ноября 2010

В Руководстве по приложениям 17.2 указано, что приложения, запрашивающие личную информацию пользователя (например, электронную почту и день рождения), будут отклонены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...