转载自:
http://blog.csdn.net/primer01/article/details/50888752
一、原理
集成X5的SDK的意思是如果手机里有X5 WebKit存在,我们的APP就会尽可能使用它。比如我们手机安装了微信、手Q、QQ浏览器,那么X5 WebKit就存在。至于尽可能使用它请参考:http://bbs.mb.qq.com/thread-286135-1-1.html?fid=92
二、坑
1、我将html文件放到/data/data/com.example.demo/files/ 里面去了,结果发现X5根本无法读取,后来通过跟腾讯工作人员沟通,原来老版本的WebKit只允许读取/sdcard 和私有目录下的/data/data/com.example.demo/files/public目录,其他目录的调用都被禁止了,通过X5 Demo知道我手机上的X5版本是2258,而新的版本如3321已经不再限制了。
2、腾讯X5官网没有写,原来App集成X5后还要到官网http://x5.tencent.com/ 的开发者后台去登记App,获得一个QBSDKAppKey,然后放到AndroidManifest.xml里面去,具体可参考官网文档。
3、js调用java的方法,share(int id),结果发现一直传回来的id是null,经过研究才发现,在js传递的参数必须在js中先转为String类型。另外x5内核貌似不支持方法重载。
4、继续更新中...
三、其他方案的评价
目前是有Hybird App的开发有以下几种方案:
1、AppCan、AppCloud等:集成了原生API,可用js调用,简单快速,;
2、使用CrossWalk ,将浏览器内核(WebKit)集成到APP里,这个方案估计淘宝、天猫都在用吧,不知道他们是不是使用CrossWalk。但是APP的体积会增加15M;
3、集成X5的SDK意思是如果手机里有他们的X5 WebKit存在,APP就会尽可能使用它;
4、调用系统的WebKit,Android机型众多,参差不齐,兼容性差。
以上方案没有优劣之分,需要根据需求来看具体侧重哪一方面。