当前位置: 首页 > news >正文

建站快车凡科/东莞网站seo公司哪家大

建站快车凡科,东莞网站seo公司哪家大,云南网站建设维修公司哪家好,外包做网站的要求怎么写2019独角兽企业重金招聘Python工程师标准>>> webview在手机上显示的内容经常非常宽,显示出来之后要手动缩放才能正常浏览。但如果用 [self.webView setScalesPageToFit:YES]; 则会被居中缩放的非常小,如图: (请无视我…

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

webview在手机上显示的内容经常非常宽,显示出来之后要手动缩放才能正常浏览。但如果用 

[self.webView setScalesPageToFit:YES];
则会被居中缩放的非常小,如图:  

16224546_N8vr.png 
(请无视我demo里的title。。。) 

  其实html本身有一个缩放的方法,可以在<head>里加一个节点:

<meta name="viewport" content="initial-scale=1.0, minimum-scale=0.1, maximum-scale=2.0, user-scalable=yes\">
content里规定了这个界面: 
最小缩放比例是0.1:minimum-scale=0.1 
最大缩放比例是2.0:maximum-scale=2.0 
允许用户缩放:user-scalable=yes 
当前缩放比是1.0:initial-scale=1.0
 

因此我们可以通过计算initial-scale来决定页面显示的时候缩放到什么比例是正好充满屏幕宽。 
可以通过js获取body的实际宽度: 

document.body.scrollWidth
然后根据我们自己webview的宽度,就可以得到期待的initial-scale了:webViewwebView.frame.size.width/pageWidth; 
下边来说具体怎么在iOS项目中实现: 
第一步:js必须是在html加载完成后才能调用,因此在iOS项目中,需要先载入一次原始的html:  
//html是否加载完成isLoadingFinished = NO;//这里一定要设置为NO[self.webView setScalesPageToFit:NO];[self.webView loadHTMLString:currentMail.htmlBody baseURL:nil];//第一次加载先隐藏webview[self.webView setHidden:YES];self.webView.delegate = self;
第二步:第一次载入偷偷载入完成后,在代理里边调用js获取宽度,然后算出合适的缩放比例,并在<head>里加上我们需要的<meta>,然后再将新的html重新加载,加载完成后再显示:  
#pragma mark - UIWebViewDelegate
- (void)webViewDidFinishLoad:(UIWebView *)webView
{//若已经加载完成,则显示webView并returnif(isLoadingFinished){[self.webView setHidden:NO];return;}//js获取body宽度NSString *bodyWidth= [webView stringByEvaluatingJavaScriptFromString: @"document.body.scrollWidth "];int widthOfBody = [bodyWidth intValue];//获取实际要显示的htmlNSString *html = [self htmlAdjustWithPageWidth:widthOfBodyhtml:currentMail.htmlBodywebView:webView];//设置为已经加载完成isLoadingFinished = YES;//加载实际要现实的html[self.webView loadHTMLString:html baseURL:nil];
}//获取宽度已经适配于webView的html。这里的原始html也可以通过js从webView里获取
- (NSString *)htmlAdjustWithPageWidth:(CGFloat )pageWidthhtml:(NSString *)htmlwebView:(UIWebView *)webView
{NSMutableString *str = [NSMutableString stringWithString:html];//计算要缩放的比例CGFloat initialScale = webView.frame.size.width/pageWidth;//将</head>替换为meta+headNSString *stringForReplace = [NSString stringWithFormat:@"<meta name=\"viewport\" content=\" initial-scale=%f, minimum-scale=0.1, maximum-scale=2.0, user-scalable=yes\"></head>",initialScale];NSRange range =  NSMakeRange(0, str.length);//替换[str replaceOccurrencesOfString:@"</head>" withString:stringForReplace options:NSLiteralSearch range:range];return str;
}
效果如下: 

16224546_virG.png 

转载于:https://my.oschina.net/are1OfBlog/blog/387697

http://www.lbrq.cn/news/941185.html

相关文章:

  • 上海专业做网站的公司/友情链接推广
  • 东营网站seo/宣传软文案例
  • 网站建设 电子商务网站开发/怎么免费做网站
  • wordpress多网站建设/好的产品怎么推广语言
  • 网站建设好如何开通/搜索引擎推广和优化方案
  • 做网站备完备案需要干什么/网络营销的六大特征
  • 中国商标交易官网/郑州seo优化
  • 济南天桥区做网站的/最好的营销策划公司
  • 深圳网站建设培训/微信客户管理
  • 北京国税局网站官网入口/seo就业指导
  • arttemplate做电商网站/b2b网站有哪些
  • 展览网站制作/百度指数查询工具app
  • 免费发布信息平台网/网站seo快速优化
  • 制作网站需要怎么做/微博推广技巧
  • wordpress如何做导航网站/济南市最新消息
  • 泰安做网站网络公司/北京营销公司排行榜
  • 进口食品销售销售在那个网站做/江苏网站开发
  • 做书的封面网站/如何成为百度广告代理商
  • 公众号平台网站开发/怎样建立自己的网站平台
  • 企业网站 带后台/注册查询网站
  • 电商网站建设小兔仙/电话营销外包公司
  • 人力招聘网站建设的简要任务执行书/什么是seo什么是sem
  • 信阳做网站的公司/搜狗搜索引擎入口
  • 济宁网站建设神华科技/新区快速seo排名
  • 网站项目的流程/友情链接的四个技巧
  • 域名解析过程/网站seo关键词优化
  • 自学网页设计要多久/小红书seo关键词优化多少钱
  • 合肥电商网站开发/排行榜前十名
  • c2c网站开发/百度app内打开
  • 网站做一样算不算侵权/网店代运营正规公司
  • 雨雪雾冰全预警:交通气象站为出行安全筑起“隐形防护网”
  • [特殊字符] 嵌入式队列精要指南:数据流的艺术与实战
  • 详解力扣高频SQL50题之619. 只出现一次的最大数字【简单】
  • SEC_FirePower 第二天作业
  • Android 10.0 sts CtsSecurityBulletinHostTestCases的相关异常分析
  • 2.Linux 网络配置