1、新浪微博的使用
使用的事umeng的SDK来调用微信、微博的分享,其中微博的调试花了很多时间,有一些小问题需要注意:
sso授权,rediect_url的设置:授权回调页面和取消授权毁掉页面都需要设置(必须设置,知性、研究生都没有设置),app设置为默认的即可:http://sns.whalecloud.com/sina2/callback
安全域名,设置为默认的即可:sns.whalecloud.com
scheme的问题:样式为:sina[umeng_key](中间不能按友盟的文档那样中间加点)
2、UIWebView的使用&&DTCoreText
加载过程:
加载url ==> 加载js代码【图片异步加载功能】 ==> 加载css样式【所有的】
关键点:
1、webview高度的变化,整个页面需要调整
加载url之后
css加载完之后
外站图片加载完之后,高度会变化
2、webview图片异步加载,为图片预留空间,需要知道准确的高度
本站的图片img标签中自带width、height,然后图片异步加载
外站的图片,加载完后图片弹出来,会出现文章突然变长的情况,影响阅读
webview高度获取的方式:使用KVO监听scrollview的contentsize的改变(但是加载完css后高度改变后无法监听到,无语)
异步加载技术由后端与前端共同完成
html加载完成后,加载本地css样式会有明显的停顿现象,文章体验不好,不知道是不是css太复杂的原因。现在是知道css加载完后才会显示出来,避免了这个问题
webview没有网络,加载本地html时,会出现明显的黑屏现象。具体讨论:http://stackoverflow.com/questions/13307093/uiwebview-loading-some-black-screen-in-the-right-side-of-landscape-view
3、webview缓存机制
重写了NSURLProtocol,在第三方的RNCachingURLProtocol基础上修改的
推荐使用AFCache
相关参考:
RNCachingURLProtocol:
http://robnapier.net/offline-uiwebview-nsurlprotocol
NSURLProtocol(中文介绍):
http://nshipster.cn/nsurlprotocol/
AFCache:
https://github.com/artifacts/AFCache
DTCoreText的使用:
优点:
如果只有很简单的html,中间没有复杂的css样式,加载js等,可以考虑这个库
缺点:
第三方的库,bug不少,对于复杂的样式经常会显示的跟webview中显示不一致,无法调整。很无语