现在有个需求,就是要webview能够按照页面内的内容进行缩放全屏显示(不出现滚动条),所以需要对webview进行横向和纵向不通的缩放比例,由于系统自带的webview只能实现等比缩放,所以我自己通过jni和android自带的webkit代码结合framework层拓展出了一个自己的webview控件,现在这个自定义的webview已经能够正常运行,但是在看缩放代码的时候总是不得要领(汗,对Android源码实在是不熟啊- -!到现在才搞了不到一个月...),所以求助各位大神,如果要做到横向和纵向上不通比例的缩放,到底需要修改什么地方?    我在webview源码中看到设置缩放比例后,最后通过sendViewSizeZoom通知webcore,然后webcore通过viewSizeChanged通知jni层,我在viewSizeChanged中直接修改一些数据,发现完全没有效果,后来又看了jni层的WebViewCore::setSizeScreenWidthAndScale,这段代码看的不是很理解,但是他最后是调用了scrollTo,没找到在什么地方处理的缩放...    另外,webview自定义的过程中遇到了一个问题,就是处理302重定向的问题,我在自定义webview实例中已经实现了shouldOverrideUrlLoading这个方法,第一次运行的时候没有任何问题,第二次以后运行,连续两次的302重定向没有问题,可是中间总会有一次302重定向失败,打印中显示已经开始执行了pageStart,但是没有调用shouldOverrideUrlLoading,不知道是怎么回事

解决方案 »

  1.   

    缩放的我已经找到解决方法了,302重定向偶尔会不调用shouldOverrideUrlLoading依然无解...请求各位大神帮忙啊~..我在自定义webview的时候,同时把net.http模块也拿了过来方便修改,不知有没有遇到和我一样问题的童靴?
      

  2.   

    终于完美解决了...
    302重定向问题是由于自定义webview的framework层使用自己的CookieManager,而http模块确使用的是android.webkit下的CookieManager,所以需要同时将http模块自定义,并且修改http模块中RequestHandle对CookieManager的引用