Android:WebView显示flash网页," shouldOverrideUrlLoading"不叫

时间:2011-12-13 05:29:55

标签: android flash events webview

我的应用程序使用webView显示flash网页。并且有一个内部按钮指向其他网址。我想单击按钮,然后转到系统浏览器。但它在Android 3.2平板电脑中不起作用。所以我重写了shouldOverrideUrlLoading方法,:

    @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            // TODO Auto-generated method stub
            System.out.println("shouldOverrideUrlLoading get the url = > " + url);
            Uri uri = Uri.parse(url);
            Intent intent =new Intent(Intent.ACTION_VIEW, uri);
            startActivity(intent);
            return true;
        }

但我发现:当我加载Flash网页时,我点击一个按钮打开其他网址,方法shouldOverrideUrlLoading()无论如何都不会调用。

如果我加载了像“www.googel.com”这样的普通无闪存网页,它可以正常工作,方法shouldOverrideUrlLoading()会调用。

并且推出了Android 3.2平板电脑。

所以我认为如果是adobe flash player加上bug?

我该如何解决? 你能帮助我吗??

1 个答案:

答案 0 :(得分:0)

如果您使用的是动作2 在你的闪光按钮,你可以添加

on(press)
{
getURL("flashURL:\\www.google.com");
}

然后在你的shouldOverrideUrlLoading:

    @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                // TODO Auto-generated method stub
                System.out.println("shouldOverrideUrlLoading get the url = > " + url);
                url = url.substring(url.indexOf("flashURL:\\") + 1)
                Uri uri = Uri.parse(url);
                Intent intent =new Intent(Intent.ACTION_VIEW, uri);
                startActivity(intent);
                return true;
            }

显然你必须创建一个自定义协议(例如" flashURL:\"," gameURL:\"等...),以便在3.2中触发shouldOverrideUrlLoading