UIWebView,输入密码

时间:2011-04-30 10:01:04

标签: objective-c ios uiwebview

我想在我在UIWebView中加载的网页中输入密码。密码是一个字符串,我想输入密码并在视图加载时自动点击页面中的按钮。

任何帮助?

2 个答案:

答案 0 :(得分:2)

如果您正在使用UIWebView,我假设您正在将一些Web服务加载到该WebView中。为什么不将您的登录系统构建到Web服务中?你甚至可以使用HTTP Basic Auth。

如果您正在管理cocoa应用程序中的密码,那么我可能会使用UITextField实现一个UIAlertView,要求输入密码。当用户按下Login时,您可以验证密码,然后在UIWebView中加载Web服务。

如果您在网站上的数据库中管理密码,那么您将构建一个html / js / php / mysql登录表单并首先将其加载到UIWebView中。

<强>更新

我会选择第一个选项并使用cocoa控件显示您自己的登录表单,例如UIAlertView和2个UITextFields。然后,您可以使用钥匙串服务保存用户名和密码,并在每次用户启动应用程序或网络会话到期时提交。

如果您想尝试这种方法,我建议您查看ASIHTTPRequest框架。特别是ASIFormDataRequest,您可以轻松发送带有正确字段的表单。

- (void)login
{
    ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];

    // Change these values to the ones in NSUserDefaults and the KeyChain
    [request setPostValue:@"Joe" forKey:@"username"];
    [request setPostValue:@"Secret" forKey:@"password"];

    [request setDelegate:self];
    [request startAsynchronous];
}

- (void)requestFinished:(ASIHTTPRequest *)request
{
    // Use when fetching text data
    NSString *responseString = [request responseString];

    // Use when fetching binary data.
    NSData *responseData = [request responseData];
}

- (void)requestFailed:(ASIHTTPRequest *)request
{
   NSError *error = [request error];
}

答案 1 :(得分:1)

只是一个想法:您可以尝试在页面中添加一些javascript,然后在webview中显示它,并使用ONLOAD事件填写密码字段并发布表单。

要做到这一点,你有2个解决方案:

相关问题