Android WebView的使用方法总结
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Android WebView的使用方法总结,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4150字,纯文字阅读大概需要6分钟。
内容图文
本文主要讲解WebView的一些常用使用方法
代码如下:
xml文件:
<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" >
<WebView
android:id="@+id/webView1"
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_weight="1" />
<ProgressBar
android:id="@+id/progressBar1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" />
</LinearLayout>
1.AndroidManifest.xml中必须使用许可"android.permission.INTERNET",否则会出Web page not available错误。
2.如果访问的页面中有Javascript,则webview必须设置支持Javascript。
webview.getSettings().setJavaScriptEnabled(true);
3.如果页面中链接,如果希望点击链接继续在当前browser中响应,而不是新开Android的系统browser中响应该链接,必须覆盖 webview的WebViewClient对象。
webView.setWebViewClient(new WebViewClient()
{
public
boolean shouldOverrideUrlLoading(WebView view, String url)
{
view.loadUrl(url);
return
true;
}
});
4.如果不做任何处理,浏览网页,点击系统“Back”键,整个Browser会调用finish()而结束自身,如果希望浏览的网 页回退而不是推出浏览器,需要在当前Activity中处理并消费掉该Back事件。
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if ((keyCode ==
KeyEvent.KEYCODE_BACK) && webView.canGoBack()) {
webView.goBack();
return true;
}
return super.onKeyDown(keyCode,
event);
}
5.android中webview支持javascript自定义对象
a.设置webview支持javascript. webSettings.setJavaScriptEnabled(true);
b.绑定android对象到javascript对象. addJavascriptInterface(Object obj,String interfaceName);
c.页面中调用javascript对象. javascript:window.demo.方法名称();
在w3c标准中js有 window,history,document等标准对象,同样我们可以在开发浏览器时自己定义我们的对象调用手机系统功能来处理,这样使用js就可以 为所欲为了。
public class WebViewDemo extends Activity {
private WebView mWebView;
private Handler mHandler = new Handler();
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.webviewdemo);
mWebView = (WebView) findViewById(R.id.webview);
WebSettings webSettings = mWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
mWebView.addJavascriptInterface(new Object()
{
public
void clickOnAndroid()
{
mHandler.post(new Runnable()
{
public void run()
{
mWebView.loadUrl("javascript:wave()");
}
});
}
},
"demo");
mWebView.loadUrl("file:///android_asset/demo.html");
}
}
6.WebView控制进度
webView.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, int progress) {
setTitle("页面加载中,请稍候..." + progress + "%");
setProgress(progress * 100);
if (progress == 100) {
setTitle(R.string.app_name);
progressBar.setVisibility(4);
}
}
});
最后把MainActivity的代码贴上
package com.example.webviewdemo;
import
android.app.Activity;
import android.os.Bundle;
import
android.view.KeyEvent;
import android.view.Menu;
import
android.webkit.WebChromeClient;
import android.webkit.WebView;
import
android.webkit.WebViewClient;
import android.widget.ProgressBar;
public class MainActivity extends Activity {
WebView
webView;
ProgressBar
progressBar;
@Override
protected
void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
webView = (WebView)
findViewById(R.id.webView1);
progressBar = (ProgressBar)
findViewById(R.id.progressBar1);
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl("https://m.empireblue.com/mobile/providerfinder/home");
webView.setWebViewClient(new WebViewClient()
{
public
boolean shouldOverrideUrlLoading(WebView view, String url)
{
view.loadUrl(url);
return
true;
}
});
webView.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, int progress) {
setTitle("页面加载中,请稍候..." + progress + "%");
setProgress(progress * 100);
if (progress == 100) {
setTitle(R.string.app_name);
progressBar.setVisibility(4);
}
}
});
}
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if ((keyCode ==
KeyEvent.KEYCODE_BACK) && webView.canGoBack())
{
webView.goBack();
return true;
}
return super.onKeyDown(keyCode,
event);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
原文:http://www.cnblogs.com/tyjsjl/p/3603247.html
内容总结
以上是互联网集市为您收集整理的Android WebView的使用方法总结全部内容,希望文章能够帮你解决Android WebView的使用方法总结所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。