Hybrid----UIWebView的HTML页面

在Hybrid框架的项目中,UIWebView常用于展示HTML内容。文章讨论了如何处理UIWebView的宽度,特别是当HTML页面设置width为device-width时,确保在iPad等设备上不小于768px,以实现良好的适配效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在做一些hybird框架的项目,对于embed的UIWebView,其宽度一般由Native app 指定,对于HTML页面

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">

其中若是width指定为device-width,那么embed的UIWebView的宽不应设置小于device-width的值,如ipad的宽为768



在webView中查看HTML页面源代码

- (void)webViewDidFinishLoad:(UIWebView *)webView_ {
    NSString *jsToGetHTMLSource = @"document.getElementsByTagName('html')[0].innerHTML";
    NSString *HTMLSource = [webView_ stringByEvaluatingJavaScriptFromString:jsToGetHTMLSource];
    NSLog(@"%@",HTMLSource);
}

在webView中调整HTML页面宽度
- (void)adjustPageWidth:(UIWebView *)webView_ {

    NSString *widthStr = [NSString stringWithFormat:@"%f",webView_.frame.size.width];
    NSString * strJS = [NSString stringWithFormat:@"function adjustPageWidth(){var metas = document.getElementsByTagName(\"meta\");var strMeta=new String();var strTemp;for(var i=0;i < metas.length;i++){if(metas[i].name == \"viewport\"){metas[i].setAttribute('content',\"width=%@, initial-scale=1.0, maximum-scale=1.0, user-scalable=no\");console.log(metas[i].name);}}}",widthStr];
    [webView_ stringByEvaluatingJavaScriptFromString:strJS];
    NSString * strFunctionJS= @"adjustPageWidth();";
    [webView_ stringByEvaluatingJavaScriptFromString:strFunctionJS];

}
在webViewDidFinishLoad中调用调整页面宽度函数
- (void)webViewDidFinishLoad:(UIWebView *)webView_ {
    DebugLog(@"%@",NSStringFromSelector(_cmd));
 
        [self adjustPageWidth:webView_];
}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值