iOS小问题(二)

随手记几个最近碰到的小问题

tips:如果有错误,或者有更好的详细解答,请随时联系我进行修改。

1.webview在ATS开启后的问题

虽然苹果推迟了ATS开启的时间,但迟早还是要开启的。
请求都需要HTTPS这个就不多谈了,这边谈一下webview的问题。

有些时候总会用webview去打开一些网站,甚至网站也会跳转一些网站,结果就碰到了ATS被拦截的问题,这个时候怎么解决呢。

  1. 关闭ATS,就是在info.plist里Allow Arbitrary Loads设置为YES,然后和苹果审核撕逼。
  2. 在iOS10上可以使用NSAllowsArbitraryLoadsInWebContentNSAllowsArbitraryLoadsForMedia,以让你的 app 中的 UIWebView、WKWebView 或者使用 AVFoundation 播放的在线视频不受 ATS 的限制。
  3. 在iOS9以后使用SFSafariViewController去进行加载。问题是接口太少,控制有点难度。
  4. 在info.plist里添加NSExceptionDomains,一个一个去去除ATS

这里借onevcat的一张图

Paste_Image.png

2.多行输入框问题

UITextField只有一行,没有多行输入。而UITextView可以多行输入,但没有placeholder。
所以要UITextView允许多行输入而且要有placeholder的话,可以在内部添加一个UILabel作为placeholder,然后添加observer观察UITextViewTextDidChangeNotification,在输入变换的时候进行placeholder的UILabel的显示和隐藏。

3.WKWebView的弹框

之前把UIWebView升级到WKWebView后发现,比如alert弹框都显示不出来了,查了文档才发现,原来是WKWebView的UIDelegate需要是实现,才能去实现页面内的alert,comfirm,prompt方法,这样也方便app自己内部做自己的相关提示框。如果不实现的话就没有任何弹框。

4.关于模块化组件化

以前我在小公司里,就2,3个人开发,所以没有模块化(组件化)这回事,但大公司几百上千个人开发App,这么多的人协作肯定需要各个部门各个模块的化,才能做到互不影响。
可以先看看我写的(iOS架构组件化)[http://www.jianshu.com/p/2d89f55fc2c4]
常用的就是URL Router的方式。比如蘑菇街的MGJRouter就很不错。这里推荐一篇文章,讲得很不错:组件化架构漫谈

参考链接:

CSDN地址
1.关于 iOS 10 中 ATS 的问题
2.组件化架构漫谈

推荐阅读更多精彩内容

  • 简介 ApiDemos -> App -> Activity -> Custom Dialog 源代码 http:...
    VilenEera阅读 47评论 0 0
  • 狼烟起,尘土飞扬 是谁在唱着大漠赞歌 策马奔腾在夕阳下 英雄在独自饮酒 眼角的孤独谁人知 雄鹰展翅高飞 自由翱翔于...
    Angel李子汐阅读 218评论 37 39
  • 01 今年清明三天假期,我选择了武汉驴友网组织的宜昌特价活动。今天是第一天出行,尽管一天三分之二的时间都在车上,且...
    Jeneer阅读 50评论 0 0