iOS 混合开发 —— WebView 问题技巧

1、图片太大

- (void)webViewDidFinishLoad:(UIWebView *)webView {
  NSString *js = @"function imgAutoFit() {      var imgs = document.getElementsByTagName(‘img‘);      for (var i = 0; i < imgs.length; ++i) {        var img = imgs[i];           img.style.maxWidth = %f;        }   }";
  js = [NSString stringWithFormat:js, [UIScreen mainScreen].bounds.size.width - 20];

  [webView stringByEvaluatingJavaScriptFromString:js];
  [webView stringByEvaluatingJavaScriptFromString:@"imgAutoFit()"];
}

  

2、内容高度

通过JS来获取高度:document.body.offsetHeight;

#pragma mark - UIWebViewDelegate
- (void)webViewDidFinishLoad:(UIWebView *)webView {
  CGFloat height = [[webView stringByEvaluatingJavaScriptFromString:@"document.body.offsetHeight;"] intValue];
  if (self.webViewHeight != height && self.count <= 3) {
    self.webViewHeight = height;
    self.count++;

    [self updateUI];
  }
}

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
  self.webViewHeight = webView.scrollView.contentSize.height;
  return YES;
}

  

时间: 2024-11-07 20:26:54

iOS 混合开发 —— WebView 问题技巧的相关文章

iOS 混合开发 —— weex

官网介绍文档:http://weex.apache.org/cn/guide/integrate-to-your-app.html 官网cocoapods/手动 集成文档:https://open.taobao.com/doc2/detail?spm=a219a.7629140.0.0.tFddsV&&docType=1&articleId=104829 注:有任何不同,请依照官网为准,在此深深感谢阿里程序员大牛不辞辛苦, 做好开源工作,致敬.. 一.weex 手动集成到原生应用中

混合开发 webview 中file 控件 点击后无反应解决方法

最近在做个项目 ,需要 使用 file 控件上传 图片到服务器 ,在手机浏览器中 可以正常选择照片,但是放到 android 应用中的webview中,file 控件点击后就没有反应. 百度了一番后,找到以下解决方案 开头定义 private ValueCallback<Uri> mUploadMessage; final static int FILE_SELECTED = 4; 然后设置 mWebView.setWebChromeClient(new WebChromeClient() {

iOS 混合开发 —— reactNative

reactNative中文官网     http://reactnative.cn/ 1. 创建我们的 RN 应用:(命令行里面 cd 到想创建工程的文件夹) react-native init RNApp --version 0.44.3 github地址: https://github.com/lc081200/hybirdApp

关于 Flutter IOS混合开发打包Framework集成到原生IOS工程 和 flutter_boost使用

参考https://juejin.im/post/5d79af99e51d453c11684ce8 flutter_boost从0.1.53开始提供了swift demo,但example_swift居然跑不起来,oc的example可以. 1. 直接把example Flutter下的Debug.xcconfig.Release.xcconfig.AppFrameworkInfo.plist拷过来 原文地址:https://www.cnblogs.com/nightfallsad/p/1158

ios&amp;h5混合开发项目仿app页面跳转优化

前言:本人原本是ios开发工程师,但由于现今H5的兴起,行内刮起了一阵混合开发的风气,趁着这股劲,我也学了前端开发,不说研究的多深,但也能胜任日常的开发工作.长话短说,现今的混合开发应该还处于摸索阶段,我们的项目主要页面都是由网页做的,只有一些IM.支付.分享.推送.上传照片这些用的是原生功能,大家都知道ios原生app的体验一直是很好的,现在改成了混合开发,无疑中就有些舍弃了ios原生的用户体验,而这个作为一个向来以用户体验为先的开发人员来说,这个真的是难以忍受,所以开始了以优化用户体验的为目

混合开发Js bridge新秀-DSBridge iOS篇

这个DSBridge 和我之前开发做的混合开发 用的方式 很相似,所以觉得很是不错,推荐给你大家. DSBridge-IOS:https://github.com/wendux/DSBridge-IOS DSBridge-Android:https://github.com/wendux/DSBridge-Android 与WebViewJavascriptBridge的对比请移步 DSBridge VS WebViewJavascriptBridge. 原文链接:http://www.jian

android混合开发,webview的java与js互操作

android原生应用,用webview加载应用中的网页,并且java代码与js代码可以互相操作. 这是混合开发的基石,最基本也最重要的东西,实验代码在这里. 概括说说—— java调js:调用webView.load("javascript:someFunction()"); 这样可以调用webView里页面上的全局方法.这不是什么新鲜东西,你在网页中也可以这么做,试试在浏览器地址栏输入javascript:alert("427studio");也可以在浏览器地址

iOS项目开发实战——storyboard设置界面技巧与注意事项

在iOS开发中,使用Main.storyboard来设计界面是每一个iOS开发人员需要面对的问题,使用storyboard相比较Android中使用XML来设置布局,有优点也有缺陷,现在我们来谈谈storyboard的设计技巧. (1)直接使用鼠标右键可以直接缩放storyboard的缩放比例.当然你也可以用触摸板使用2根手指缩放. . (2)拖拽控件绑定到代码中,不一定要从设计界面的控件中进行拖拽,也可以直接从左侧的列表中拖拽,这样会更加清晰方便. . (3)如何添加修改超过一屏的控件.我们把

iOS常用开发技巧

iOS开发过程中,总有那么一些个小问题让人纠结,它们不会让程序崩溃,但是会让人崩溃.除此之外,还将分享一些细节现在我通过自己的总结以及从其他地方的引用,来总结一下一些常见小问题. 本篇长期更新,多积累,多奉献,同时感谢其中一些文章的作者的整理,感谢! iOS高级开发实战讲解 这是我在网上搜索到的iOS高级开发实战讲解,由于原文不是很方便浏览,所以我在这里整理一部分出来,方便查阅,同时谢谢原作者. 这里我不是每一个都收录进来,这里只是放出一部分,有些用的太多,我就没整理了,大家如果想看可以去看原文