美文网首页iOS开发(OC)
使用UIWebView中踩到的坑

使用UIWebView中踩到的坑

作者: 学习无底 | 来源:发表于2016-04-20 14:41 被阅读4762次

    iOS7上UIWebView可以左右滑动

    • 经过无数尝试发现,只要UIWebView的宽比屏幕的宽小一些,1个点左右,但这样能看到UIWebView不是全屏,想让宽度差更小些,经过几次实验,我的最小值为0.5,左右各。25个点。
    • 在iOS8之后的系统上,UIWebView的宽等于屏幕宽也不会左右滑动。

    WebActionDisablingCALayerDelegate类找不到相应的方法实现

    • 在加载UIWebView过程中,发现有时会崩溃,找不到WebActionDisablingCALayerDelegate类的一些方法实现。
    • 自己动手加,写了一个UIWebView的category,.m代码如下:
    + (void)load{
    //  "v@:"
    Class class = NSClassFromString(@"WebActionDisablingCALayerDelegate");
    class_addMethod(class, @selector(setBeingRemoved), setBeingRemoved, "v@:");
    class_addMethod(class, @selector(willBeRemoved), willBeRemoved, "v@:");
    
    class_addMethod(class, @selector(removeFromSuperview), willBeRemoved, "v@:");
     }
    
    id setBeingRemoved(id self, SEL selector, ...)
    {
       return nil;
    }
    
    id willBeRemoved(id self, SEL selector, ...)
    {
      return nil;
    }
    

    修正

    为 WebActionDisablingCALayerDelegate 这个私有类添加方法,在后面的一次提交审核过程中,ipa文件提交失败:引用私有API(还是私有类,记不得了)。所以建议不要采用。

    相关文章

      网友评论

      • 有个愛妳的人不容易:WebActionDisablingCALayerDelegate 审核会被拒 不建议使用。 在 web 和原生界面交互时 把原生放在主线程里面 会避免这个问题
      • 李Mr:我已有新的解决方案,可以去我的博客中看。https://www.jianshu.com/p/995f25fb852c
      • Aeline丶:删除了,还有其他方法代替吗?
      • 爱恨的潮汐:Guideline 2.5.1 - Performance - Software Requirements

        Your app uses or references the following non-public APIs:

        PrivateFrameworks/WebCore.framework (WebActionDisablingCALayerDelegate)

        The use of non-public APIs is not permitted on the App Store because it can lead to a poor user experience should these APIs change.

        Continuing to use or conceal non-public APIs in future submissions of this app may result in the termination of your Apple Developer account, as well as removal of all associated apps from the App Store.
        学习无底:这种方案抛弃吧,不能用了
      • 爱恨的潮汐:我也用了这个方法,被拒接了
        学习无底:不要再用了
      • sankun:写这个类目 发版能通过吗? 楼主
        学习无底:不能的文章最后有说
      • 整个夏天:把全局断点去掉就可以了,别的好像没什么影响。
      • 59c06d926e41:这样写以后不奔溃了,但是苹果审核通不过 怎么办?
      • e5b67824629b:有解决方案了么?
      • 123打点滴:这个并不是崩溃,把调试信息点掉就能正常运行了。
        sankun:我也遇到这个问题了 那儿的调试信息关掉?
      • ADELEX:还好有这篇文章,,解决了,不过我这是模拟器报错,,真机没事,加入这个分类后模拟器也好了
        学习无底:@ADELEX 后面我没有再遇到这个问题,就没有研究。
        当初测试,我用百度的首页加载没有问题,用自己公司的网页,十次会出现六七次崩溃。我怀疑是公司网页用的框架或加载页面代码不够完善,也有可能是苹果的UIWebView有不完善的地方,需要做特殊性适配。
        对了,我现在用的WKWebView。
        ADELEX:@学习无底 现在你怎么解决?
        学习无底:@ADELEX 这个我后面已经不这样做了,建议还是移除。
      • 纪宝宝:确实好了,多谢楼主 :blush:
        学习无底:@纪宝宝 这样写,我在提交苹果审核时遇到问题:引用私有API(还是私有类,记不得了)。后面移除相关代码后,提交OK,运行也没有问题,就没有再关注这个了。
      • freedon:这样写了,还是报错,请问什么问题
        学习无底:@林思聪 这只是完整代码的一部分,完整代码上面没有
        6310ffb20d0c:@学习无底 请问oc代码怎么写替换方法,是这样写吗?
        -(instancetype)setBeingRemoved{
        return nil;
        }
        学习无底:@freedon 你确定是报错,不是crash。我一直怀疑是网页写的不完善导致的。
      • 我不是cxk:楼主是什么错,我的报这个[WebActionDisablingCALayerDelegate willBeRemoved],还有别的解决办法吗,这个方法只能避免崩溃,我这边的视频还是播放不了
      • dong_liang:-[WebActionDisablingCALayerDelegate willBeRemoved]: unrecognized selector sent to instance 0x12ff0f9a0你也是这样的错吗?
        6310ffb20d0c:我是报这个,你怎么解决的

      本文标题:使用UIWebView中踩到的坑

      本文链接:https://www.haomeiwen.com/subject/zuwzlttx.html