![个人头像照片](https://ucc.alicdn.com/avatar/img_1725ebd59a4539e1085ed4cf4dff74e5.png)
移动开发工程师,现在在研究混合开发技术。
“IP直连方案”主要在于解决DNS污染、省去DNS解析时间,通常情况下我们可以在项目中使用 NSURLProtocol 拦截 NSURLSession 请求,下面将支持 Post 请求中面临的一个挑战,以及应对策略介绍一下。
weex 旨在兼顾web动态性与native的用户体验,如果想将两者的优势最大化,那么缓存就显得格外重要,本文介绍如何利用缓存,实现weex页面迅速打开,甚至“秒开”的效果。
【前言】KVO API设计非常不合理,于是有很多的KVO三方库,比如 KVOController 用更优的API来规避这些crash,但是侵入性比较大,必须编码规范来约束所有人都要使用该方式。有没有什么更优雅,无感知的接入方式?
**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)* - [前言](#%E5%89%8D%E8%A8%80) - [实现原理](#%E5%AE%9E%E7%8E%B0%E5%8E%9F%E7%90%86) - [优化:降低50%以上误报机率](#%E4%BC%98%
如果 app 连续 crash 两次无法启动,用户往往会选择卸载。本文介绍如何该类 crash 的自修复技术。
在开发中 `unrecognized selector sent to instance XXXXX` 是非常常见的 crash 类型。这篇博文主要介绍如何在客户端自修复该问题,并进行原理解析。
无论是从 Local DNS 解析域名,获取到 IP 列表,还是从第三方的 DNS 解析服务中,获取到域名对应的 IP 列表。我们获得多个 IP 后,总是想选取一个最优的 IP 使用,本文主要探讨如何在客户端探测 IP 的连接性以及连接速度,保证返回可用性最好的IP,以达到“IP优选”的目的。
## WEEX + HTTPDNS iOS解决方案 由于`WebView`并未暴露处设置DNS的接口,因而在`WebView`场景下使用`HttpDns`存在很多无法限制,但如果接入`WEEX`,则可以较好地植入`HTTPDNS`,本文主要介绍在`WEEX`场景下接入`HTTPDNS`的方案细节。 在`WEEX`运行时环境下,所有的逻辑最终都会转换到`Native Runtime`中执
## WEEX + HTTPDNS iOS解决方案 由于`WebView`并未暴露处设置DNS的接口,因而在`WebView`场景下使用`HttpDns`存在很多无法限制,但如果接入`WEEX`,则可以较好地植入`HTTPDNS`,本文主要介绍在`WEEX`场景下接入`HTTPDNS`的方案细节。 在`WEEX`运行时环境下,所有的逻辑最终都会转换到`Native Runtime`中执
## WEEX + HTTPDNS iOS解决方案 由于`WebView`并未暴露处设置DNS的接口,因而在`WebView`场景下使用`HttpDns`存在很多无法限制,但如果接入`WEEX`,则可以较好地植入`HTTPDNS`,本文主要介绍在`WEEX`场景下接入`HTTPDNS`的方案细节。 在`WEEX`运行时环境下,所有的逻辑最终都会转换到`Native Runtime`中执
本文主要介绍 HTTPS(含SNI) 业务场景下在 iOS 端实现 “IP直连” 的通用解决方案。
本文主要介绍,防 DNS 污染方案在 WebView 场景下所遇到的一些问题,及解决方案,也会涉及比如:“HTTPS+SNI” 等场景。
本文将讨论下类似这样的问题: WKWebView 对于 Cookie 的管理一直是它的短板,那么 iOS11 是否有改进,如果有,如何利用这样的改进? 采用 IP 直连方案后,服务端返回的 Cookie 里的 Domain 字段也会使用 IP 。
302等 URL 重定向业务场景需要解决的问题:302 等重定向状态码,如何正确执行跳转逻辑,要求跳转后,依然需要执行 IP 直连逻辑,多次 302,也能覆盖到。
SNI(单IP多HTTPS证书)场景下,iOS上层网络库 `NSURLConnection/NSURLSession` 没有提供接口进行 `SNI 字段` 配置,因此需要 Socket 层级的底层网络库例如 `CFNetwork`,来实现 `IP 直连网络请求`适配方案。
这里有一篇讲解 Cookie的文章不错,现在WKWebView对于cookie管理有较大的更新,可以尝试看下,https://github.com/ChenYilong/iOSBlog/issues/14
推荐使用JSBridge进行js与native进行交互。
服务端选型和APP关系不太大,
建议如果你如果有后端经验,
大可不必参考APP端的技术选型。
PHP、JAVA、firebase等,根据业务需求选型即可。
除了其他人的答案:
- (void)applicationWillTerminate:(UIApplication *)application {
// Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
}
还可以监听通知:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(willTerminate:) name:UIApplicationWillTerminateNotification object:nil];
Swift是Apple推出的,目标是在与弥补Objective-C的缺陷的编程语言。
从长远看Swif更加利好,
但是Apple也不会放弃对 Objective-C 的维护,
如果学有余力,
建议两者都学,
两者学习成本类似。
这个是iOS9引入的特性,bitcode特性,
建议升级支持bitcode的二维码库,
或者不需要bitcode功能的话直接关闭该功能,
building setting里,查找bitcode,设成NO。
iOS对于后台运行行为有较为严格的审核制度,必须是音乐类、地图导航类等苹果规定的行为,
如果超出了这个行为,Apple很可能不允许上架,所以建议在打算实现之前,
评估好风险以及是否符合苹果政策。后台开启闪光灯,这个需求Apple 应该不允许。
网络上是有工具库的,这里有一个java的,你可以借鉴、使用:https://github.com/CoreSit/MD5WithRSA/blob/master/MD5WithRSA.java
我已经尝试了,在WiFi情况下可以打开,你这种情况,很可能是在本地打开了代理,而代理网络无法正常使用,请尝试ping下。
比如charls调试,iPhone 开启代理,连接mac但是,charls 关闭了,这是就是连上了Wi-Fi还是无法上网。
目前云栖社区模块,app暂未提供。
没有Home键盘的是关机键和声音增大键。
有home键的是同时按Home键和关机键。
初级开发者,没有强制的要求,
但是发展到后期,参与更复杂的功能实现,研究更底层的原理,
可能就需要这些知识。
就算工作中没有这些需求,平时拿他来锻炼思维、编程思想也是不错的。
原理是一项技术:「bluetooth beacons」,是利用蓝牙来进行定位的技术。
目前最广泛的应用是用在商场室内定位。
这里有篇博文可以参考下:
CiteSeerX — Low-Latency Indoor Localization Using Bluetooth Beacons http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.148.1034
任何一门编程领域的入门,包括iOS原理都相似,大致经历这几个阶段:
请更新至最新版本,旧版本配置错误会有弹框警告,现在改为了log提示,提示会友好一点。
Weex 目前专注于大前端领域,这里也仅仅指的是三端:H5、iOS、Android。所以可以遇见将来很长时间内没有可能支持windows、Linus平台。
这里有一个教程,介绍了如何解决内存泄漏问题。
《手把手教你解决 Flutter engine 内存泄漏》 https://juejin.im/post/5c24ad306fb9a049d2361cff