UIWebView是iOS最常用的8SDK之一甚负,它有一個stringByEvaluatingJavaScriptFromString方法可以將javascript嵌入頁面中喉恋,通過這個方法我們可以在iOS中與UIWebView中的網(wǎng)頁元素交互。
使用stringByEvaluatingJavaScriptFromString方法棠隐,需要等UIWebView中的頁面加載完成之后去調(diào)用石抡。我們在界面上拖放一個UIWebView控件。在Load中將google mobile加載到這個控件中助泽,代碼如下:
[super viewDidLoad];
webview.backgroundColor = [UIColor clearColor];
webview.scalesPageToFit =YES;
webview.delegate =self;
NSURL *url =[[NSURL alloc]
initWithString:@"http://www.google.com.hk/m?gl=CN&hl=zh_CN&source=ihp"];
NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url];
[webview loadRequest:request];
1啰扛、獲取當前頁面的url嚎京。
- -(void)webViewDidFinishLoad:(UIWebView *)webView {
- NSString *currentURL = [webView stringByEvaluatingJavaScriptFromString:@"document.location.href"];
- }
2、獲取頁面title:
-(void)webViewDidFinishLoad:(UIWebView *)webView {
NSString *currentURL = [webView stringByEvaluatingJavaScriptFromString:@"document.location.href"];
NSString *title = [webView stringByEvaluatingJavaScriptFromString:@"document.title"];
}
CGPoint pt = [tap locationInView:newsWebView];//函數(shù)返回一個CGPoint類型的值隐解,表示觸摸在view這個視圖上的位置鞍帝,
//這里返回的位置是針對view的坐標系的。調(diào)用時傳入的view參數(shù)為空的話煞茫,返回的時觸摸點在整個窗口的位置帕涌。
NSString *imgURL = [NSString stringWithFormat:@"document.elementFromPoint(%f, %f).src", pt.x, pt.y];
//判斷點擊到的是否是圖片,可設(shè)置特殊的url续徽,
NSString *urlToSave = [newsWebView stringByEvaluatingJavaScriptFromString:imgURL];
//獲取當前頁面的URL
//獲取當前頁面的高度
NSString *height_str= [newsWebView stringByEvaluatingJavaScriptFromString: @"document.body.offsetHeight"];
// 禁止用戶選擇
[webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.style.webkitUserSelect='none';"];
// 禁止用戶長按彈出彈出框
[webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.style.webkitTouchCallout='none';"];
iOS7之后蚓曼,關(guān)于JavaScriptCore,
JSContext, JSContext是代表JS的執(zhí)行環(huán)境钦扭,通過-evaluateScript:方法就可以執(zhí)行一JS代碼
JSValue, JSValue封裝了JS與ObjC中的對應(yīng)的類型纫版,以及調(diào)用JS的API等
JSExport, JSExport是一個協(xié)議,遵守此協(xié)議客情,就可以定義我們自己的協(xié)議其弊,在協(xié)議中聲明的API都會在JS中暴露出來,才能調(diào)用
參考資料:(伯樂在線)http://ios.jobbole.com/83945/
(gitbook)https://www.gitbook.com/book/liuduo1988/ios/details