cordova ios踩坑之路

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容