UIWebView是iOS SDK中一个最常用的控件,在PhoneGap中,默认也是使用UIWebView作为默认视图显示我们的HTML应用的。
 
在使用PhoneGap的项目中,默认WebViewBounce这个选项是打开的,所以使用手指向下或者向上滑动屏幕时,经常会看到页面底部和屏幕底部会出现一大片空白,然后松开手指后,再弹回去的特效。
 
之前查了很多资料,说可以通过修改 plist 或者 config.xml 来关闭这个效果,如下:
 

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

 
经过我在 PhoneGap 2.6、PhoneGap 2.9 这两个版本中测试后,发现都不能够生效。经过分析,实际上iOS中的PhoneGap项目,只不过是默认初始化一个UIWebView,然后在这个视图中加在HTML资源,那么我们可以直接使用原生代码将Bounce禁用。如下所示:
 

- (void)webViewDidFinishLoad:(UIWebView*)theWebView
{
    // Black base color for background matches the native apps
    theWebView.backgroundColor = [UIColorblackColor];
    [(UIScrollView *)[[theWebView subviews] objectAtIndex:0] setBounces:NO];

return [superwebViewDidFinishLoad:theWebView];
}

 
再重新编译之后,可以看到效果了吧 :)
 
参考资料:
 
 

Phonegap项目中禁用WebViewBounce的更多相关文章

  1. SpringBoot项目中禁用HttpClient那些嘈杂的日志

    在SpringBoot中使用了HttpClient之后,会产生大量嘈杂且基本无效的日志信息,如下图: 找了很多文章,大部分用common-logging.propertites,log4j.prope ...

  2. 【React踩坑记一】React项目中禁用浏览器双击选中文字的功能

    常规项目,我们只需要给标签加一个onselectstart事件,return false就可以 例: <div onselectstart="return false;" & ...

  3. 在vue项目中禁用eslint

    文章目录 1.在创建项目的时候不自动使用eslint 2.在package.json中删除所有的eslint,然后重新install 3.按照图片注释(亲测可用) 在使用eslin进行规则验证时,一点 ...

  4. 解决项目中.a文件的冲突

    .a文件是静态文件,有多个.o文件组合而成的,在ios项目开发中,当引用第三方库的时候,时不时的会碰到诸如库冲突.库包含了某些禁用的API等问题,而这些库往往都被打包成了静态库文件(即 .a文件)来使 ...

  5. 项目中创建单元测试—VS2012

    我们在每个项目的开发过程中,开发完一个功能,自己首先需要测试一下,VS提供了很方便的测试功能,可以很容易的创建单元测试,但是在VS2012中类名上点击右键没有『创建单元测试』这个菜单,需要先进行设置一 ...

  6. 在已有 Xcode 项目中 加入Cordova框架

    转自:http://www.jianshu.com/p/656838ae92bc 我们知道,在UIKit中的UIWebView虽然已经提供了很多功能了,比如JavaScript和Objc之间的通信.但 ...

  7. 菜鸟-手把手教你把Acegi应用到实际项目中(8)-扩展UserDetailsService接口

    一个能为DaoAuthenticationProvider提供存取认证库的的类,它必须要实现UserDetailsService接口: public UserDetails loadUserByUse ...

  8. 如何在我们项目中利用开源的图表(js chart)

            最近觉得应该把自己在技术上的一些心得记录在博客里面跟大家分享,一起讨论,一起成长!       这篇随笔主要为介绍chart在项目中的运用,因为在我们看到一些开源的chart时候,是使 ...

  9. 转:Qt项目中遇到的一些小问题汇总

    链接:http://blog.csdn.net/yangyunfeizj/article/details/7082001    作者:GoatYangYang 公司让负责qt界面开发,但是接触qt又不 ...

随机推荐

  1. 【fedora】设置中文为默认语言

    安装Fedora时,界面语言是英语,手动安装简体中文语言包: 1.打开终端,执行yum install system-config-language命令来安装语言套件: 2.然后执行system-co ...

  2. Ubuntu 安装 “宋体,微软雅黑,WPS Office的symbol、wingdings、wingdings 2、wingdings 3、webding字体,Consolas雅黑混合版编程字体” 等 Windows 7 下的字体(转)

    Windows平台下,"宋体"."微软雅黑"."Courier New(编程字体)"用的比较多,看的也习惯了.那如何在 Ubuntu下也安装 ...

  3. GPS模块的AT指令集

    AT+CPIN? 查询sim卡状态. 接着: AT+CGCLASS="B"AT+CGDCONT=1,"IP","CMNET"AT+CGATT ...

  4. weblogic的jar包冲突

    异常: Error creating bean with name 'sessionFactoryWrite' defined in class path resource [applicationC ...

  5. PHP将XML数据转换为数组

    <?php $s=join(,file('httpapi.elong.comxmlv2.0hotelcn0132701501.xml')); $result = xml_to_array($s) ...

  6. C#:只运行一个程序

    一.通过系统事件 1.实现如下: using System; using System.Collections.Generic; using System.Linq; using System.Tex ...

  7. 工作上的C/C++相关

    LKSnapShot.h的line127某个类的声明中有: public: typedef TClient<LPeer, ACE_DEV_Connector> _TClient; 这种情况 ...

  8. 使用mysqlbinlog server远程备份binlog的脚本

    #注意,备份机到远程mysql服务器需要免密钥登录,此脚本放到计划任务中每五分钟执行一次,避免mysqlbinlog server进程长时间挂掉无人知晓   cat backup_binlog.sh ...

  9. rtc关机闹钟7 jni层 com_android_server_AlarmManagerService

    frameworks/base/services/core/jni/com_android_server_AlarmManagerService.cpp int AlarmImplAlarmDrive ...

  10. SlickGrid example 5:带子项的展开收缩

    带子项的展开收缩.   代码: <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Ty ...