可以使用
stringByEvaluatingJavaScriptFromString
功能進行實彈射擊從Objective C的JavaScript方法,並從該方法的返回值。
例如
//Calling the getTheUsername in the javascript.
NSString *userName = [yourWebView stringByEvaluatingJavaScriptFromString:@"getTheUsername()"];
,並在javascript
//Method in javascript
function getTheUsername()
{
return userNameVariable;
}
而且我懷疑,在這裏你可能會想要做的,反之亦然(從JavaScript調用OBJ-C法)。這不能直接完成這裏是工作。
設置一個UIWebViewDelegate,並實現方法webView:shouldStartLoadWithRequest:navigationType :.在你的JavaScript代碼中,導航到一些假的URL,它將你想傳遞給你的應用的信息進行編碼,例如: window.location =「someLink:// yourApp/form_Submitted:param1:param2:param3」; 在您的委託方法中,查找這些僞造URL,提取您需要的信息,採取適當的操作,並返回NO以取消導航。
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{
NSLog(@"%@",[[request URL] query]);
return YES;
}
您的提交按鈕是本機UIButton還是HTML Button元素。 – sElanthiraiyan
它的HTML「提交」按鈕,這就是爲什麼我想知道如何將數據保存到我的程序。 – Michael
那麼你應該使用我在我的回答中提到的第二個工作。在提交按鈕中導航到一個虛假的url,並且shouldStartLoadWithRequest將被觸發。在該方法內部使用stringByEvaluatingJavaScriptFromString調用javascript方法。在該JavaScript方法中返回所需的數據。得到它了! – sElanthiraiyan