Android webview url重定向

时间:2011-08-22 17:23:57

标签: android android-webview

我的应用程序中有一个webview,在启动时会显示一个html页面。该页面有一个超链接,点击该链接应该显示一个视频。

当我运行应用程序并单击视频超链接时,没有任何反应。但是如果我在Android浏览器中加载相同的页面,那么它会启动一个默认的视频播放器,一切正常。

我通过在shouldOverrideUrlLoading方法中放入一个日志语句来调试它,并注意到,当单击超链接时,它会被重定向到另一个链接,然后再转到另一个链接(最终视频流URL)。

我的问题是:为什么链接在默认的android浏览器中完美运行,而不是通过webview。

由于

3 个答案:

答案 0 :(得分:1)

当您单击超链接时,发生的情况是该链接可能包含一些弹出窗口。您需要在webview的WebChromeClient中定义onCreateWindow函数。这将处理如何处理打开新窗口或弹出窗口的调用。

public boolean onCreateWindow (WebView view, boolean dialog, boolean userGesture, Message resultMsg) {

    ((WebView.WebViewTransport) resultMsg.obj).setWebView(myWebView);
    resultMsg.sendToTarget(); 
    return true;
}

答案 1 :(得分:1)

声明WebView后,您应该启用javascript,然后WebView将作为浏览器使用。

例如:

WebView mwebview = new WebView(this);
setContentView(mwebview);

mwebview.getSettings().setJavaScriptEnabled(true);

mwebview.getSettings().setPluginState(PluginState.ON); // this is for newer API's

答案 2 :(得分:0)

基本上,不要指望您的嵌入式WebView与Android默认浏览器的工作方式相同。默认浏览器构建在同一WebView上,但有很多自定义。 (特别是关于非标准的uri,HTML5的东西)

我从这里跟随代码:WebView and HTML5 <video>,我将视频链接放到视频标签上,然后我在我自己的WebView版本中播放了视频。该行为与默认浏览器略有不同。如果有更多时间,我们可以通过查看代码来解决这个问题,但无论如何......