我的代码:
public class View_WebView extends Activity {
WebView myWebView;
private class MyWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url.endsWith(".mp4")){
Intent in = new Intent (Intent.ACTION_VIEW , Uri.parse(url));
startActivity(in);
return true;
}
else
return false;
}
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
myWebView = (WebView) findViewById(R.id.webview);
myWebView.setWebViewClient(new WebViewClient());
myWebView.loadUrl("http://hdcast.pl");
}
}
<?xml version="1.0" encoding="utf-8"?>
<WebView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/webview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
Eclipse编译正确,当我在智能手机上启动应用程序时出现错误:
“不幸的是,申请XX已被停止”
答案 0 :(得分:1)
您的webView为空,取消注释此行:
myWebView = (WebView) findViewById(R.id.webview);
编辑:
您还必须在XML中有一个WebView元素
<WebView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/webview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
答案 1 :(得分:1)
您没有正确使用它!
您必须制作自己的自定义WebClient,它将扩展WebClient,并在其中根据您的需要使用shouldOverrideUrlLoading。
http://developer.android.com/guide/webapps/webview.html
private class MyWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url.endsWith(".mp4")){
Intent in = new Intent (Intent.ACTION_VIEW , Uri.parse(url));
startActivity(in);
return true;
}
else
return false;
}
}
然后将自定义WebClient添加到WebView中,您就可以了。
myWebView.setWebViewClient(new MyWebViewClient());
myWebView.loadUrl("XXX");
编辑:根据上一个答案,请确保使用findViewById()
答案 2 :(得分:1)
直接进行:
从此tutorial
myWebView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url.endsWith(".mp4")){
Intent in = new Intent (Intent.ACTION_VIEW , Uri.parse(url));
startActivity(in);
return true;
}
else
return false;
}