cordova ios踩坑之路

字数 222阅读 1022

社会我锋哥,人狠话不多……话不多说,start!

  • IOS7+ webview全屏导致状态栏悬浮在页面上
    解决方案:打开 ios项目/classes/MainViewController.m,修改viewWillAppear方法
- (void)viewWillAppear:(BOOL)animated  
{  
    // View defaults to full size.  If you want to customize the view's size, or its subviews (e.g. webView),  
    // you can do so here.  
    if([[[UIDevice currentDevice]systemVersion ] floatValue]>=7)  
    {  
        CGRect viewBounds=[self.webView  bounds];  
        viewBounds.origin.y=20;  
        viewBounds.size.height=viewBounds.size.height-20;  
        self.webView.frame=viewBounds;  
    }  
  
    [super viewWillAppear:animated];  
} 

PS:更新cordova-plugin-statusbar插件为2.2.3之后,好像失效了
暂时把配置项改成这样

  <preference name="StatusBarStyle" value="defaults" />
  • ios聚焦打开键盘时,webview没有收缩高度,导致css中绝对定位top:0会被顶到视图之外
    解决方案:添加cordova-plugin-keyboard插件,然后js调用插件的方法,使开启键盘时收缩webview
// 安装cordova-plugin-keyboard
cordova plugin add cordova-plugin-keyboard

然后在deviceready事件中调用全局Keyboard.shrinkView方法

document.addEventListener('deviceready', () => {
  window.Keyboard.shrinkView(true);
  // 其他代码
  ...............
}
  • ios自动聚焦无效(例如 autofocus、jq的$(xxx).focus())
    解决方案:在cordova配置文件config.xml中增加以下配置:
<preference name="KeyboardDisplayRequiresUserAction" value="false" />

持续更新,暂时 只碰到 || 只想起 这几个

推荐阅读更多精彩内容

  • 丝雨绵绵,雾霭重重,这是雨珠坠落过的城市。我在江苏南京的廉价宾馆里,看着水珠从天花板上滴落,落在已经积累成小水潭的...
  • FreeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出。它不仅可以用作表现层的实现技术,...
  • 如果想从嘈杂浮躁的环境中沉淀下来,推荐看Liz Climo这两本蠢萌的漫画集,BGM可以配陈一发的童话镇,瞬间治愈...
  • ajax用jquery使用确实方便,但如果只用ajax,难道我们还会为了使用而引入jquery吗?不仅如此,用原生...