WebView 打开带Frameset Tag的Html文件时,经常显示不全,只显示最后一个页面。
需要简单设置之后就可以了
覆盖shouldOverrideUrlLoading, 并返回false;
mWebView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return false;// false 显示frameset, true 不显示Frameset
}
}
package cn.hpc.cai.webview; import android.os.Bundle; import android.app.Activity; import android.graphics.Bitmap; import android.view.Menu; import android.view.View; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.Toast; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); init(); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.activity_main, menu); return true; } private WebView mWebView; private void init(){ mWebView = (WebView)findViewById(R.id.web_view); mWebView.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { Toast.makeText(MainActivity.this, "shouldOverrideUrlLoading " + url, Toast.LENGTH_SHORT).show(); return false;// false 显示frameset, true 不显示Frameset } @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { //有页面跳转时被回调 } @Override public void onPageFinished(WebView view, String url) { //页面跳转结束后被回调 } @Override public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { Toast.makeText(MainActivity.this, "Oh no! " + description, Toast.LENGTH_SHORT).show(); } }); // String url = "<html><frameset cols=\"25%,25%\" FRAMEBORDER=NO FRAMESPACING=0 BORDER=0><frame src=\"file:///sdcard/demo.html" // + "\" /><frame src=\"file:///sdcard/left.htm\" /> </frameset></html>"; // // mWebView.loadDataWithBaseURL("", url, "text/html", "utf-8", ""); mWebView.loadUrl("file:///sdcard/frameset.htm"); } }
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:text="@string/hello_world" /> <WebView android:id="@+id/web_view" android:layout_width="fill_parent" android:layout_height="fill_parent" /> </LinearLayout>