IOS修改webView背景透明以及IOS调用前台js的方法
工作上遇到IOS的webView中的H5页面需要透明以显示webView的背景颜色。用H5自身的透明度的css样式或者js控制背景颜色及透明度都打不到想要的效果,最后还是通过ios设置webView中的body颜色及透明度来实现的,具体代码如下:
-(void) webViewDidFinishLoad:(UIWebView *)webView { [webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('body')[0].style.background='rgba(0,0,0,0)'"]; }
于是H5页面就透明并且显示webView的背景颜色了。Android的目前还没有研究怎么去设置webView中的H5页面的背景。后续有时间了研究一下。
顺便提一下IOS调用前台页面js方法的写法:
首先要在页面内添加定义一个js方法,并且return一个返回值,例如:
//查看更多 ios调用方法 function getParameterForIOS (parameter) { var result=""; var city=sessionStorage.getItem("usedCarCity001"); var is_type=sessionStorage.getItem("usedCarCertification002"); if(is_type=="true"){ is_type = 0; }else{ is_type = 1; } //city if (parameter=="city") { result=city; } //is_type if (parameter=="certification") { result=is_type; } return result; }
然后在IOS中,webView加载开始或者结束的时候调用该方法,例如:
- (void)webViewDidStartLoad:(UIWebView *)webView { NSString *certification = [webView stringByEvaluatingJavaScriptFromString:@"getParameterForIOS('certification')"]; }
得到的返回值赋给变量进行使用。
大神勿喷,小弟仅仅是遇到这个问题,做一下记录而已。。。