webview加载html
1. 为什么 WebView 加载 html 代码会显示 \n
为什么 WebView 加载 HTML 代码会显示 \n
1. 在IE 6中,选择工具>Internet选项,在弹出的Internet选项对话框中选择高级选项卡,将禁用脚本调试(Internet Explorer)和禁用脚本调试(其它)两个选项的勾都去掉,即确保没有选中它们。然后重新启动IE。
2. 在你希望的地方设置断点,按F5键直接启动调试。当程序运行到断点处时,自动停在断点处。
注意此种方法只能调试外部的脚本文件,对于内置在页面文件的脚本,可以在想中断的脚本处添加debugger;语句即可,如下图所示。
2. android 开发webview如何加载html
1.String customHtml = "<html><body><font color='red'>hello !</font></body></html>";
首先写了一个html代码段,用来显示一段红色的字体;
2.webview.loadData(customHtml, "text/html", "UTF-8"); 加载定义的代码,并设定回编码格式和字符集;
3.运行答效果;如图:
3. webview加载assets中的html内容显示不出来,为啥
语法写正确没,比如
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
webView = (WebView) findViewById(R.id.webView);
webView.loadUrl("file///android_asset/index.html");
}
webView.loadUrl("file:///android_asset/index.html");
少了个冒号也显示不出来,这是我亲身体会过的
要是语法正确,那就看看自己的代码写对没
4. Android开发中能不能用webview直接加载html文本
//加载本项目内asset目录下的文件wView.loadUrl("file:///android_asset/index.html");
//加载本地指定地址的文件(如sd卡内的index.html文件)
wView.loadUrl("content://com.android.htmlfileprovider/sdcard/index.html");
3.//加载指定远程网页地址文件wView.loadUrl("http://***********");
WebView 提供 loadData(String data, String mimeType, String encoding) : 方法,该方法可以用于加载并显示HRML代码,实际应用过程中 存在一个问题,,当他加载包含中文的HTML内容时,WebView将会显示乱码.
幸好WebView还提供了一个 loadDataWithBaseURL(String baseUrl, String data, String mimeType, String encoding, String historyUrl) : 方法,该方法是loadData()方法的增强版,它不会产生乱码.
loadDataWithBaseURL(String baseUrl, String data, String mimeType, String encoding, String historyUrl) : 几个参数的简单说明.
data : 指定需要加载的HTML 代码.
mimeType :指定HTML 代码的 MIME类型.对于HTML代码可指定为text/html .
encoding :指定HTML 代码的代码编码所用的字符集.比如指定 UTF-8.
5. android 开发webview如何加载p标签的html
本人弄的个类似实例以供参考:
import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.view.View.OnClickListener;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.AdapterView.OnItemSelectedListener;
@("SetjavaScriptEnabled")
public class Onlinedic extends Activity {
private TextView result;
private EditText editText;
private WebView webView;
private String[] url = {"file:///android_asset/cn2en.html","file:///android_asset/en2cn.html",
"file:///android_asset/ge2cn.html","file:///android_asset/cn2ge.html",
"file:///android_asset/en2ge.html","file:///android_asset/ge2en.html"};
private String[] chooseStr={"英","中","德","中","德","英"};
private Handler tHandler = new Handler();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.onlinedic);
webView=(WebView)findViewById(R.id.toutput);
final Button submit=(Button)findViewById(R.id.submit);
editText=(EditText)findViewById(R.id.tinput);
result=(TextView)findViewById(R.id.result);
final Spinner l_select=(Spinner)findViewById(R.id.l_select);
ArrayAdapter adapter=new ArrayAdapter(this,
android.R.layout.simple_spinner_item,chooseStr);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
l_select.setPrompt("请选择翻译的方式");
l_select.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView arg0, View arg1,
int arg2, long arg3) {
if(((TextView)arg1).getText()==chooseStr[0])
webView.loadUrl(url[0]);
if(((TextView)arg1).getText()==chooseStr[1])
webView.loadUrl(url[1]);
if(((TextView)arg1).getText()==chooseStr[2])
webView.loadUrl(url[2]);
if(((TextView)arg1).getText()==chooseStr[3])
webView.loadUrl(url[3]);
if(((TextView)arg1).getText()==chooseStr[4])
webView.loadUrl(url[4]);
if(((TextView)arg1).getText()==chooseStr[5])
webView.loadUrl(url[5]);
}
@Override
public void onNothingSelected(AdapterView arg0) {
webView.loadUrl(url[0]);
}
});
l_select.setAdapter(adapter);
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setSaveFormData(false);
webSettings.setSavePassword(false);
webSettings.setSupportZoom(false);
submit.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
result.setVisibility(TextView.VISIBLE);
webView.setVisibility(WebView.VISIBLE);
tHandler.post(new Runnable(){
public void run(){
if (editText.getText().toString() != ""){
webView.loadUrl("javascript:translate('"+
editText.getText().toString() + "')");
}
}
});
}
});
}
6. WebView加载HTML,怎么加载到指定位置
UIWebView 是用来加载加载网页数据的一个框。UIWebView可以用来加载pdf word doc 等等文件
生成webview 有两种方法,1、通过storyboard 拖拽 2、通过alloc init 来初始化
创建webview,下列文本中 _webView.dataDetectorTypes = UIDataDetectorTypeAll; 是识别webview中的类型,例如 当webview中有电话号码,点击号码就能直接打电话
加载html
// HTML是网页的设计语言
// <>表示标记</>
// 应用场景:截取网页中的某一部分显示
// 例如:网页的完整内容中包含广告!加载完成页面之后,把广告部分的HTML删除,然后再加载
// 被很多新闻类的应用程序使用
[self.webView loadHTMLString:@"<p>Hello</p>" baseURL:nil];
7. 怎么用WebView加载本地html
WebView提供的loadData(String data , String mimeType , String encoding)方法,该方法可用于加载并显示HTML代码,但在实际使用过程中,当它加载包含中文HTML内容时,WebView将会显示乱码。
WebView还提供了一个loadDataWithBaseURL(String baseUrl , String data , String mimeType , String encoding , String historyUrl)方法,该方法是loadData(String data , String mimeType , String encoding)方法的增强版,它不会产生乱码。
1、data:指定需要加载的HTML代码。
2、mimeType:指定HTML代码的MIME类型,对于HTML代码可指定为text/html。
3、encoding:指定HTML代码编码所用的字符集。比如指定为GBK。
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.webkit.WebView;
public class ViewHtml extends Activity {
WebView show;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_view_html);
//获取程序中的WebView组件
show = (WebView) findViewById(R.id.show);
StringBuilder sb = new StringBuilder();
//拼接一段HTML代码
sb.append("<html>");
sb.append("<head>");
sb.append("<title>欢迎你</title>");
sb.append("</head>");
sb.append("<body>");
sb.append("<h2>111</h2>");
sb.append("</body>");
sb.append("</html>");
//使用简单的loadData方法会导致乱码,可能是Android API的Bug
//show.loadData(sb.toString(), "text/html", "utf-8");
//加载、并显示HTML代码
show.loadDataWithBaseURL(null,sb.toString(), "text/html", "utf-8", null);
}
}
8. 安卓如何使用WebView组件加载HTML代码
1)修改新建项目的resIayout目录下的布局文件main.xml,将默认添加的TextView组件删除,然后添加一个WebView组件
2)在MainActivity的onCreate()方法中,首先获取布局管理器中添加的Web View组件,然后创建一个字符串构建器,将要显示的HTML代码放置在该构建器中,最后应用IoadDataWithBaseURLO方法加载构建器中的HTML代码
android客户端常会调用到html页面,给webview页面适配android凌乱的设备带来很大的困难。
可以找到的方法是通过ZoomDensity.setDefaultZoom根据分辨率480宽度为基准缩放。
不过ZoomDensity.setDefaultZoom在2.0以下的平台是无法调用的,需要自己反射调用。
即使是ZoomDensity.setDefaultZoom设置了缩放,但还是会在很多设备无效。经过摸索还需做一些修改:
1,页面head添加
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
2,设置字体也按480基准缩放。
下面是代码:
Java代码
privatevoidsetZoom(WebSettingswebSettings){intscreenDensity=getResources().getDisplayMetrics().densityDpi;Stringzd="FAR";switch(screenDensity){caseDisplayMetrics.DENSITY_LOW:zd="CLOSE";break;caseDisplayMetrics.DENSITY_MEDIUM:zd="MEDIUM";break;}Class<?>zoomDensityClass=null;Enum<?>zoomDensity=null;try{if(zoomDensityClass==null){zoomDensityClass=Class.forName("android.webkit.WebSettings$ZoomDensity");}if(zoomDensity==null){zoomDensity=(Enum<?>)Enum.valueOf((Class)zoomDensityClass,zd);}Methodmethod=WebSettings.class.getDeclaredMethod("setDefaultZoom",newClass<?>[]{zoomDensityClass});if(method!=null){method.invoke(webSettings,zoomDensity);}method=WebSettings.class.getDeclaredMethod("setTextZoom",newClass<?>[]{int.class});if(method!=null){method.invoke(webSettings,100*getWindowManager().getDefaultDisplay().getWidth()/480);}}catch(Exceptione){Log.e(TAG,e.getMessage());return;}}
Android的webview加载本地html、本apk内html和远程URL
Android的webview加载本地html、本apk内html和远程URL
android客户端常会调用到html页面,给webview页面适配android凌乱的设备带来很大的困难。
可以找到的方法是通过ZoomDensity.setDefaultZoom根据分辨率480宽度为基准缩放。
不过ZoomDensity.setDefaultZoom在2.0以下的平台是无法调用的,需要自己反射调用。
即使是ZoomDensity.setDefaultZoom设置了缩放,但还是会在很多设备无效。经过摸索还需做一些修改:
1,页面head添加
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
2,设置字体也按480基准缩放。
下面是代码:
Java代码
privatevoidsetZoom(WebSettingswebSettings){intscreenDensity=getResources().getDisplayMetrics().densityDpi;Stringzd="FAR";switch(screenDensity){caseDisplayMetrics.DENSITY_LOW:zd="CLOSE";break;caseDisplayMetrics.DENSITY_MEDIUM:zd="MEDIUM";break;}Class<?>zoomDensityClass=null;Enum<?>zoomDensity=null;try{if(zoomDensityClass==null){zoomDensityClass=Class.forName("android.webkit.WebSettings$ZoomDensity");}if(zoomDensity==null){zoomDensity=(Enum<?>)Enum.valueOf((Class)zoomDensityClass,zd);}Methodmethod=WebSettings.class.getDeclaredMethod("setDefaultZoom",newClass<?>[]{zoomDensityClass});if(method!=null){method.invoke(webSettings,zoomDensity);}method=WebSettings.class.getDeclaredMethod("setTextZoom",newClass<?>[]{int.class});if(method!=null){method.invoke(webSettings,100*getWindowManager().getDefaultDisplay().getWidth()/480);}}catch(Exceptione){Log.e(TAG,e.getMessage());return;}}
9. android中webview加载html,用本地的css渲染页面如何做
android中webview加载html用本地css渲染的做法:
1:将资源拷贝到assets目录
2:给需要注入的资源文件在url上做一个标志,当然,你也可以不做,只要你在安卓端可以判断出来即可。
<link rel="stylesheet" href="[inject]public/css/bootstrap.min.css" type="text/css" media="screen" title="no title" charset="utf-8">
<link rel="stylesheet" href="[inject]public/css/bootstrap-theme.min.css" type="text/css" media="screen" title="no title" charset="utf-8">
<script type="text/javascript" src="[inject]public/js/zipto/1.1.6/zepto.min.js"></script>
<script type="text/javascript" src="[inject]public/js/moles/md5.min.js"></script>
3:拦截将要注入的文件,读取本地文件即可。
webview.setWebViewClient(new WebViewClient() {
@Override
public WebResourceResponse shouldInterceptRequest(WebView view, String url) {
//System.out.println("WebResourceResponse::"+url);
if(url.contains("[inject]")){
String localPath = url.replaceFirst("^http.*inject\\]","");
System.out.println("LocalPath::"+localPath);
try {
InputStream is = getApplicationContext().getAssets().open(localPath);
return new WebResourceResponse("text/javascript", "UTF-8", is);
} catch (Exception e) {
e.printStackTrace();
return super.shouldInterceptRequest(view, url);
}
} else {
return super.shouldInterceptRequest(view, url);
}
}
});