你的位置:首页 > 软件开发 > 操作系统 > iOS开发日记27

iOS开发日记27

发布时间:2015-09-29 17:00:15
今天博主有一个WebView与JS的交互的需求,遇到了一些困难点,在此和大家分享,希望能够共同进步.WebView与JS的交互分为两种种方式:1.在OC中调用JS 2.在JS中调用OC 网页试用[NSString stringWithFormat:@"http:// ...

今天博主有一个WebView与JS的交互的需求,遇到了一些困难点,在此和大家分享,希望能够共同进步.

WebView与JS的交互分为两种种方式:1.在OC中调用JS 2.在JS中调用OC 

网页试用[NSString stringWithFormat:@"http://cn.bing.com"]

一.在OC中调用JS

直接上代码

-(void)webViewDidFinishLoad:(UIWebView *)webView

{

//    NSString *docStr=[webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.textContent"];//获取web页面内容信息,此处获取的是个json字符串

    

//    NSString *docStr=[webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"alert(1);"]];//显示并获取一个弹窗

    

//    NSString *docStr=[webView stringByEvaluatingJavaScriptFromString:@"document.location.href"];//获取当前页面的url

    

//    NSString *docStr=[webView stringByEvaluatingJavaScriptFromString:@"document.title"];//获取当前页面的title

 

//    NSString *docStr=[webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByName('q')[0].value='Mr.林';"];//修改当前页面的元素的值

 

//    NSString *docStr=[webView stringByEvaluatingJavaScriptFromString:@"document.forms[0].submit();"];//表单提交

 

    static dispatch_once_t onceToken;

    dispatch_once(&onceToken, ^{

    [webView stringByEvaluatingJavaScriptFromString:@"var script = document.createElement('script');"

     "script.type = 'text/javascript';"

     "script.text = \"function myFunction() { "

     "var field = document.getElementsByName('q')[0];"

     "field.value='Mr.林';"

     "document.forms[0].submit();"

     "}\";"

     "document.getElementsByTagName('head')[0].appendChild(script);"];

    });

    NSString *docStr=[webView stringByEvaluatingJavaScriptFromString:@"myFunction();"];

   

    NSLog(@"*******%@",docStr);

}

PS:小技巧,WebView自带的属性是不可以改变字体大小颜色这些需求的,现在给出几种解决方案如下:

1.第一种方式:在WebView的代理方法webViewDidFinishLoad中:

字体大小: [webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust= '12%'"];

字体颜色:[webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('body')[0].style.webkitTextFillColor= 'green'"];

背景颜色:[webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('body')[0].style.background='#F6F7F3'"];

2.第二种方式:在下面可以通过改变margin大小来改变webview文字距离边距大小,13代表字体大小,self.strBookTips是要**作的字符串。

    NSString *BookStr = [NSString stringWithFormat:@"<html> \n"

                         "<head> \n"

                         "<style type=\"text/css\"> \n"

                         "body {margin:10;font-size: %d;}\n"

                         "</style> \n"

                         "</head> \n"

                         "<body>%@</body> \n"

                         "</html>",13,self.strBookTips];

[self.webView loadHTMLString:BookStr baseURL:nil];

3.第三种方式,这种缺少了改变背景颜色

    NSString * formatString = @"<span style=\"font-size:13px;color:#7E7C8A\">%@</span>";

    NSString * htmlString = [NSString stringWithFormat:formatString,self.strBookTips];

[self.webView loadHTMLString:BookStr baseURL:nil];

二.用超链接来调用OC中的方法

步骤:

*1.设置webView的代理<UIWebViewDelegate>

原标题:iOS开发日记27

关键词:IOS

IOS
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。