问题描述如下:希望得到大牛的指点,谢谢了。
     我在用webview加载flash的时候,用了webviewclient,其中WebViewClient中我重写了onLoadResource 和onPageStart 
和onPageFinish(就在里面打了log )。
发现:在android2.2和android2.3上,加载flash走了onPageStart->onLoadResource->onPageFinish.
           在3.1上只走了:onPageStart->onPageFinish。没有走onLoadResource。
     求解啊,谢谢了。

解决方案 »


  1. 代码如下:
    public class TestSwfSizeActivity extends Activity {
        /** Called when the activity is first created. */
       private WebView mWebView;
       private int mWidth;
       private int mHeight;
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            
            
            setContentView(R.layout.webview);
            mWebView = (WebView) findViewById(R.id.myWebView1);
            mWebView.getSettings().setPluginsEnabled(true);
            mWebView.setWebViewClient(new MyWebViewClient());
            mWebView.loadUrl("file:///android_asset/book.png");
        }
        
        class MyWebViewClient extends WebViewClient {        @Override
            public void onLoadResource(WebView view, String url) {
                // TODO Auto-generated method stub
                Log.i("webview", url + "1");
                super.onLoadResource(view, url);
            }        @Override
            public void onPageFinished(WebView view, String url) {
                // TODO Auto-generated method stub
                Log.i("webview", url + "2");
                super.onPageFinished(view, url);
            }        @Override
            public void onPageStarted(WebView view, String url, Bitmap favicon) {
                // TODO Auto-generated method stub
                Log.i("webview", url + "3");
                super.onPageStarted(view, url, favicon);
            }        @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                // TODO Auto-generated method stub
                Log.i("webview", url + "4");
                return super.shouldOverrideUrlLoading(view, url);
            }
            
        }
        
       
    }如上,在2.3上和3.1上的log不一致。
    求解,谢谢。
      


  2. 你把这句  mWebView.loadUrl("file:///android_asset/book.png");中的book.png换成一个html试试,看看3.0会不会加载onLoadResource
      

  3. 我又实验了一下:
      将图片换成网页可以执行onLoadResource
      将图片换成flash.swf,即:一个flash文件不会执行。
      不换就一个图片也不执行。
    我查开发者文档,也没发现在3.1(注3.0上也是如此)和2.3上在webview上的区别。3.1和2.3在webview和webviewclient上确实有变化不过好像都和onLoadResource没有关系。
      

  4. 我又实验了一下:
      将图片换成网页可以执行onLoadResource
      将图片换成flash.swf,即:一个flash文件不会执行。
      不换就一个图片也不执行。
    我查开发者文档,也没发现在3.1(注3.0上也是如此)和2.3上在webview上的区别。3.1和2.3在webview和webviewclient上确实有变化不过好像都和onLoadResource没有关系。
      

类似问题 »