×

cordova ios踩坑之路

96
kamifun
2017.12.04 17:10* 字数 222

社会我锋哥,人狠话不多……话不多说,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" />

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

随笔
Web note ad 1