android webview 正常显示 Html中的 Frameset iframe
16lz
2022-04-14
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 {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);init();}@Overridepublic 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>
更多相关文章
- Android(安卓)对话框【Dialog】去除白色边框代码
- Android(安卓)Build 系统
- Android(安卓)Studio3.4.2配置NDK
- eclipse上Android(安卓)NDK开发环境搭建
- android 应用如何获取系统权限 以及root系统方法
- Android中实现下载和解压zip文件功能代码分享
- Android分辨率自适应
- ionic打包apk时报错No resource identifier found for attribute
- NPM 和webpack 的基础使用