1

我想在加载网页后 3 秒后开始播放视频。这是我的html代码:

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
        <meta http-equiv="refresh" content="3;url=http://xx.xxx.x.xxx:8080/small.mp4"/>

</head>

<body>
    <ul>
        <li><a title="Home" alt="Home" href="/">Home</a></li>

    <li><a title="Match Centre" alt="Match Centre" href="/menu/centre">Match Centre</a></li>

    <li><a title="Clubs" class="more clubs" href="/menu/clubs"><span>Clubs</span></a></li>

    <li><a title="Menu" class="more menu" href="/menu/options"><span>Menu</span></a></li>
    </ul>
</body>
</html>

它在我尝试过的所有浏览器(包括 Android noraml 浏览器)中都运行良好,但它不适用于 Android 嵌入式浏览器。

这是我的主要活动:

public class MainActivity extends Activity {

private WebView webView;

@SuppressLint("SetJavaScriptEnabled")
@Override
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    webView = (WebView) findViewById(R.id.webView1);
    webView.getSettings().setJavaScriptEnabled(true);

    webView.setWebViewClient(new WebViewClient(){
            @Override
            public void onReceivedError (WebView view, int errorCode, String description, String failingUrl) {
                Log.e("CEmbeddedBrowser eceivedError()", "Fail to load: " + failingUrl);
            }

        });

        webView.setWebChromeClient(new WebChromeClient() {

        @Override
        public boolean onJsAlert(WebView view, String url, String message, final JsResult result) {
            new AlertDialog.Builder(view.getContext())
                    .setMessage(message)
                    .setPositiveButton(android.R.string.ok, new AlertDialog.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            result.confirm();
                        }
                    })
                    .setCancelable(false)
                    .create()
                    .show();
            return true;
       }

    }); 
    webView.loadUrl("http://xx.xxx.x.xxx:8080/mypage.html");

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

}

Android 文档说 WebViewClient 支持元标记。我已经尝试使用普通页面 (http://www.google.com">) 进行重定向并且它有效,但是我不知道为什么它不适用于视频。

4

1 回答 1

1

对于像我一样寻找解决方案的任何其他人,事实证明我必须将 WebViewClient 指定为导航目标。元刷新/重定向似乎被视为导航活动,因此一旦我告诉 webview 在其内部处理导航,它就可以完美运行。

谷歌开发者文档

处理页面导航

当用户从 WebView 中的网页单击链接时,默认行为是 Android 启动处理 URL 的应用程序。通常,默认 Web 浏览器会打开并加载目标 URL。但是,您可以为您的 WebView 覆盖此行为,以便在您的 WebView 中打开链接。然后,您可以允许用户在您的 WebView 维护的网页历史记录中前后导航。

要打开用户单击的链接,只需使用 setWebViewClient() 为您的 WebView 提供 WebViewClient。例如:

WebView myWebView = (WebView) findViewById(R.id.webview);
myWebView.setWebViewClient(new WebViewClient());
于 2017-02-22T22:56:29.300 回答