2012-06-18 46 views
1

我對我的應用程序有以下代碼。iOS獲取過去的登錄表單。

- (void)webViewDidFinishLoad:(UIWebView *)webView 
{ 
    //Set the values 
    NSString* firstValue = @"guest"; 
    NSString* secondValue = @"guest"; 
    // write javascript code in a string 
    NSString* javaScriptString = @"document.getElementById('Login1_UserName').value=%@;" 
    "document.getElementById('Login1_Password').value=%@;" 
    "document.forms['form1'].submit();"; 

    // insert string values into javascript 
    javaScriptString = [NSString stringWithFormat: javaScriptString, firstValue, secondValue]; 

    // run javascript in webview: 
    [webView stringByEvaluatingJavaScriptFromString: javaScriptString]; 
} 

- (void)launchWebPageWithOptions 
{  
    NSString *urlString = @"http://demo.leadtools.com/MedicalViewer/default.aspx"; 
    NSURL *url = [NSURL URLWithString:urlString]; 
    NSURLRequest *requestObject = [NSURLRequest requestWithURL:url]; 
    [iOSWebView loadRequest:requestObject]; 
} 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib. 

    [self launchWebPageWithOptions]; 
} 

出於某種原因,我無法執行使用javascript調用的自動登錄。我不是JS專家,所以,如果你能看到我javaScriptString任何錯誤,請讓我知道,

+0

是'「'開頭和JS或 – Charlie

+0

的Objective-C的對象 - 的一部分的線路部分的末端的內部@?」。」是JavaScript –

+0

您是否通過JSHint運行JS? – Charlie

回答

1

首先,改變你的用戶名和密碼格式化的值被引用:

NSString* javaScriptString = @"document.getElementById('Login1_UserName').value='%@';" 
    "document.getElementById('Login1_Password').value='%@';" 
    "document.forms['form1'].submit();"; 

注意到我在兩種情況下都將value=%@更改爲value='%@'。這將正確地填寫輸入框。

接下來,請登錄按鈕的click()函數,而不是調用形式submit()

NSString* javaScriptString = @"document.getElementById('Login1_UserName').value='%@';" 
    "document.getElementById('Login1_Password').value='%@';" 
    "document.getElementById('Login1_LoginButton').click()"; 

這將允許登錄按鈕指定的onclick JavaScript來執行。

0

您缺少字符串引號。

試試這個:

NSString* javaScriptString = @"document.getElementById('Login1_UserName').value='%@';" 
"document.getElementById('Login1_Password').value='%@';" 
"document.forms['form1'].submit();";