在使用PhoneGap制作App的时候,iOS作为承载App页面的容器的Webview,在手指向下或者向上滑动屏幕时,除了页面本身的滚动外,还经常会看到整体页面底部和屏幕底部被拖动出黑屏

为了防止这一滑动,可以通过修改修改项目中的MainViewController.m,重新设置WebView来实现

1 - (void)webViewDidFinishLoad:(UIWebView*)theWebView
2 {
3     // Black base color for background matches the native apps
4     theWebView.backgroundColor = [UIColorblackColor];
5      
6     [(UIScrollView *)[[theWebView subviews] objectAtIndex:0] setBounces:NO];
7  
8     return [superwebViewDidFinishLoad:theWebView];
9 }
 

在驿驴项目修改的地方是

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000 }
p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #d12f1b }
p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000; min-height: 13.0px }
p.p4 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px "PingFang SC"; color: #008400 }
p.p5 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #3e1e81 }
p.p6 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #31595d }
span.s1 { }
span.s2 { color: #ba2da2 }
span.s3 { color: #703daa }
span.s4 { color: #000000 }
span.s5 { color: #78492a }
span.s6 { font: 11.0px Menlo; color: #000000 }
span.s7 { font: 11.0px Menlo }
span.s8 { color: #272ad8 }
span.s9 { color: #4f8187 }
span.s10 { color: #31595d }
span.s11 { color: #3e1e81 }

- (void)webViewDidFinishLoad:(UIWebView*)webView

{

VerboseLog(@"webView didFinishLoad (before). state=%d loadCount=%d", _state, _loadCount);

BOOL fireCallback = NO;

// 禁止滚动上下滚动

[(UIScrollView *)[[webView subviews] objectAtIndex:0] setBounces:NO];

switch (_state) {

case STATE_IDLE:

break;

case STATE_WAITING_FOR_LOAD_START:

NSLog(@"CDVWebViewDelegate: Unexpected didFinish while waiting for load start.");

break;

case STATE_WAITING_FOR_LOAD_FINISH:

if (_loadCount == 1) {

fireCallback = YES;

_state = STATE_IDLE;

}

_loadCount -= 1;

break;

case STATE_IOS5_POLLING_FOR_LOAD_START:

[self pollForPageLoadStart:webView];

break;

case STATE_IOS5_POLLING_FOR_LOAD_FINISH:

[self pollForPageLoadFinish:webView];

break;

}

VerboseLog(@"webView didFinishLoad (after). state=%d loadCount=%d fireCallback=%d", _state, _loadCount, fireCallback);

if (fireCallback && [_delegate respondsToSelector:@selector(webViewDidFinishLoad:)]) {

[_delegate webViewDidFinishLoad:webView];

}

}

其实还可以这样

修改config.xml

<preference name="WebViewBounce" value="false" />

<preference name="DisallowOverscroll" value="true" />

在iOS中使用Phonegap防止Webview被上下拖动的更多相关文章

  1. ios中,长按Webview中的图片

    我们所要解决的问题如题目所示:ios中,长按Webview中的图片,将图片保存到本地相册. 解决方案:对load的html网页,执行js注入,通过在webview中执行js代码,来响应点击事件,通过j ...

  2. Cordoval在iOS中的运用整理

    一:关于Cordoval理论知识 1:PhoneGap是手机平台上流行的一款中间件.它构建在各种手机平台所提供的WebView(浏览器内核)组件的基础之上,使用javascript语言对应用开发者提供 ...

  3. Unity在Android和iOS中如何调用Native API

    本文主要是对unity中如何在Android和iOS中调用Native API进行介绍. 首先unity支持在C#中调用C++ dll,这样可以在Android和iOS中提供C++接口在unity中调 ...

  4. 【iOS】使用safari对webview进行调试

    [iOS]使用safari对webview进行调试 在web开发的过程中,抓包.调试页面样式.查看请求头是很常用的技巧.其实在iOS开发中,这些技巧也能用(无论是模拟器还是真机),不过我们需要用到ma ...

  5. 浅谈iOS中的userAgent

    浅谈iOS中的userAgent   User-Agent(用户代理)字符串是Web浏览器用于声明自身型号版本并随HTTP请求发送给Web服务器的字符串,在Web服务器上可以获取到该字符串. 在公司产 ...

  6. iOS中JS 与OC的交互(JavaScriptCore.framework)

    iOS中实现js与oc的交互,目前网上也有不少流行的开源解决方案: 如:react native 当然一些轻量级的任务使用系统提供的UIWebView 以及JavaScriptCore.framewo ...

  7. iOS 中使用Block时需要注意的retain circle

    现在在ios中,block是越来越多了.自己在类中定义block对象时,需要注意block对象的使用方法,防止产生retain circle,导致内存泄露. 现在分析一下产生retain circle ...

  8. iOS 中有用的开源库

    youtube下载神器:https://github.com/rg3/youtube-dl vim插件:https://github.com/Valloric/YouCompleteMe vim插件配 ...

  9. ios 中的小技巧 - 总有你想要的 一

    UITableView的Group样式下顶部空白处理 在viewWillAppear里面添加如下代码: //分组列表头部空白处理 CGRect frame = myTableView.tableHea ...

随机推荐

  1. 移动端自动化环境搭建-stuptools和pip的安装

    安装stuptools和pip A.安装依赖 setuptools 和 pip 并非必须安装的两个包,但安装之后,后续再安装 Python 的库将变得非常简单. B.安装过程

  2. python Tab自动补全命令设置

    Mac/Windows下需要安装模块儿 pip install pyreadline pip install rlcompleter pip install readline 注意,需要先安装pyre ...

  3. FFT的分析以及matlab实验

    FFT(Fast Fourier Transformation),即为快速傅氏变换,是离散傅氏变换(DFT)的快速算法. 采样得到的数字信号,做FFT变换,N个采样点,经过FFT之后,就可以得到N个点 ...

  4. VS2010添加资源文件

    VS2010中资源文件管理在 双击打开Resources.resx 选择左上角资源文件类型 然后复制资源文件 粘贴到空白区域 则会自动生成资源文件代码 在项目中使用该资源文件时,通过global::P ...

  5. [Nginx] 在Linux下的启动、停止和重加载

    Nginx的启动 /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf 其中-c参数指定配置文件路径.   Nginx的停止 ...

  6. 通过innobackupex实现对MySQL的完整备份与还原

    备份 新建一个用于存放备份的目录 mkdir /backup 执行以下命令: innobackupex --password=test /backup/ 执行完后你会看到“completed OK!” ...

  7. html css 编写规范

    html 规范 一 语法 1.用两个空格带她tab, 2.嵌套的元素应该缩进一次,即两个空格是最好 3.属性定义,全部使用双引号,尽量避免单引号. 4.不要在自闭和标签尾部添加闭合标签. 5.可选得结 ...

  8. 9.8 js进阶总结3

    DOM文档对象模型 DOM(document object model)文档对象模型,它定义了操作文档对象的接口. DOM 把一份html文档表示为一棵家谱树,使用parent(父),child(子) ...

  9. touches, targetTouches, changedTouches 区别

    1. touches: A list of information for every finger currently touching the screen2. targetTouches: Li ...

  10. iOS 10开发NSAssert(断言)的使用

    断言(NSAssert)的使用 字数1055 阅读3270 评论3 喜欢30 NSAssert()是一个宏,用于开发阶段调试程序中的Bug,通过为NSAssert()传递条件表达式来断定是否属于Bug ...