您的位置:首页 > 移动开发 > Android开发

Android中WebKit的应用

2016-04-24 19:21 573 查看
package com.skex.webpwd;

import android.os.Bundle;

import android.annotation.SuppressLint;

import android.app.Activity;

import android.graphics.Bitmap;

import android.view.Menu;

import android.view.View;

import android.view.View.OnClickListener;

import android.webkit.WebSettings;

import android.webkit.WebView;

import android.webkit.WebViewClient;

import android.widget.Button;

import android.widget.EditText;

public class MainActivity extends Activity implements OnClickListener{
private EditText editText1;
private Button btnGo;
private Button btnGet;
private WebView webView1;

    @SuppressLint("SetJavaScriptEnabled") 

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

      //Activity 

      editText1 = (EditText) findViewById(R.id.editText1);

      btnGo = (Button) findViewById(R.id.btnGo);

      btnGo.setOnClickListener(this);

      btnGet = (Button) findViewById(R.id.btnGet);

      btnGet.setOnClickListener(this);

      webView1 = (WebView) findViewById(R.id.webView1);

      //Java代码:

         WebSettings webSettings=webView1.getSettings();

         webSettings.setJavaScriptEnabled(true);

         //设置可以访问文件

         webSettings.setAllowFileAccess(false);

         //设置支持缩放

         webSettings.setBuiltInZoomControls(true);

         

       webView1.setWebViewClient(new WebViewClient() {

       

            @Override//android.webkit.WebViewClient.shouldOverrideUrlLoading

        public boolean shouldOverrideUrlLoading(WebView view,String url){

        view.loadUrl(url);

        return true;//shouldoverrideurlloading返回true表明点击网页里面的链接还是在当前的webview里跳转,不跳到浏览器那边

                   }

     

                   @Override

                   public void onPageFinished(WebView view,String url){

        super.onPageFinished(view,url);

        }

     

                  @Override

                  public void onPageStarted(WebView view , String url,Bitmap favicon){

        super.onPageStarted(view,url,favicon);

        }

        });

    }

    
@Override
public void onClick(View view) {

switch(view.getId())
{
case R.id.btnGo:
String url=editText1.getText().toString();
url=url.trim();
if(!url.startsWith("http"))
url="http://"+url;
webView1.loadUrl(url);
break;
case R.id.btnGet:
break;
default:
break;
}
}
@Override

    public void onBackPressed() {

        webView1.goBack();

    }

    

    @Override

    public boolean onCreateOptionsMenu(Menu menu) {

        // Inflate the menu; this adds items to the action bar if it is present.

        getMenuInflater().inflate(R.menu.main, menu);

        return true;

    }

    
}

Android中WebKit的应用

编辑:kezz来源:Android中文网发布时间:2011/4/2 11:36:49

  Android中,提供了WebKit引擎用于对网页浏览和操作进行编程。Google对WebKit进行了封装,提供了丰富的Java接口,其中最重要的便是android.webkit.WebView控件。

  

  1.WebViewer控件

  

  Android提供了WebView控件专门用来浏览网页。其使用方法和其他控件一样,需要在布局文件中进行布局,然后在程序中就可以使用并进行设置了。通过loadUrl方法,可以访问网页。代码如下:

  

  Java代码:

  wb=(WebView)findViewById(R.id.wb);

  wb.loadUrl(url);

  

  对于浏览器的设置,可以通过WebSettings来设置WebView的一些属性、状态等。代码如下:

  

  Java代码:

    WebSettingswebSettings=mWebView.getSettings();

  webSettings.setJavaScriptEnabled(true);

  //设置可以访问文件

  webSettings.setAllowFileAccess(true);

  //设置支持缩放

  webSettings.setBuiltInZoomControls(true);

  2.WebViewClient和WebChromClient

  

  WebViewClient和WebChromClientshi可以看作是辅助WebView管理网页中各种通知、请求等事件以及JavaScript时间的两个类。

  

  2.1WebViewClient

  

  通过WebView的setWebViewClient方法指定一个WebViewClient对象。通过覆盖该类的方法来辅助WebView浏览网页。代码如下:

  

  Java代码:

    mWebView.setWebViewClient(newWebViewClient()

  {

  publicbooleanshouldOverrideUrlLoading(WebViewview,Stringurl)

  {

  view.loadUrl(url);

  returntrue;

  }

  @Override

  publicvoidonPageFinished(WebViewview,Stringurl)

  {

  super.onPageFinished(view,url);

  }

  @Override

  publicvoidonPageStarted(WebViewview,Stringurl,Bitmapfavicon)

  {

  super.onPageStarted(view,url,favicon);

  }

  });

  2.2WebChromClient

  

  对于网页中使用的JavaScript脚本语言,就可以使用该类处理Js事件,如对话框加载进度等。例如:

  

  Java代码:

    mWebView.setWebChromeClient(newWebChromeClient(){

  

  

  @Override

  //处理javascript中的alert

  publicbooleanonJsAlert(WebViewview,Stringurl,Stringmessage,

  finalJsResultresult)

  {

  //构建一个Builder来显示网页中的对话框

  Builderbuilder=newBuilder(Activitythis);

  builder.setTitle("提示对话框");

  builder.setMessage(message);

  builder.setPositiveButton(android.R.string.ok,

  newAlertDialog.OnClickListener(){

  publicvoidonClick(DialogInterfacedialog,intwhich){

  //点击确定按钮之后,继续执行网页中的操作

  result.confirm();

  }

  });

  builder.setCancelable(false);

  builder.create();

  builder.show();

  returntrue;

  };

  }

 

安卓手机微信、QQ与短信删除聊天记录恢复全攻略
【玩机小技巧】Galaxy Note3如何使用4G网络
【小白福音·安卓篇】安卓手机未知来源软件安装
【小白福音·安卓篇】安卓手机短信铃声自定义
【小白福音·安卓篇】安卓手机使用误区
【小白福音·安卓篇】手机上网及彩信设置方法
HTC One X S720e手机信号设置方法
HTC ONE X如何限制后台运行程序数量
小技巧 强制你的Android手机检查系统更新
安卓智能手机如何备份手机里的文件


关注安卓中文网官方微信
扫描左侧二维码即可添加安卓中文网官方微信

您也可以在微信上搜索“安卓中文网”或“anzhuozww”,获取更多数码资讯

微博推荐

标签:Android,WebKit




更多>>相关文章
安卓手机微信、QQ与短信删除聊天记录恢复全攻略
【玩机小技巧】Galaxy Note3如何使用4G网络
【小白福音·安卓篇】安卓手机未知来源软件安装
【小白福音·安卓篇】安卓手机短信铃声自定义
【小白福音·安卓篇】安卓手机使用误区
【小白福音·安卓篇】手机上网及彩信设置方法
HTC One X S720e手机信号设置方法
HTC ONE X如何限制后台运行程序数量
小技巧 强制你的Android手机检查系统更新
安卓智能手机如何备份手机里的文件

更多>>24小时热点
华为获质量最高殊荣 用工匠精神定义中国“质”造

金立S8引发交互革命—首个压感屏安卓手机

蓝港互动王峰:和吴奇隆做生意是啥感觉

完全是鸡肋设计!vivo Xplay5曲面屏诚意不足

为什么华为手机质量好?来看看华为品控是怎么做的

易烊千玺最新手记曝光 网友:不知道三小只STYLE就OUT了!

三星Exynos8890真的比高通骁龙820强吗?

买旗舰就是买口碑 最值得入手还得是Mate S

男神力爆棚 华为畅享手机成95后最爱

《巴士话IT》第26期:人工智能VS虚拟现实

评论

<iframe id="iframeu2583631_0" src="http://pos.baidu.com/acsm?rdid=2583631&dc=2&di=u2583631&dri=0&dis=0&dai=1&ps=3320x194&dcb=BAIDU_SSP_define&dtm=BAIDU_DUP_SETJSONADSLOT&dvi=0.0&dci=-1&dpt=none&tsr=0&tpr=1461494545891&ti=Android%E4%B8%ADWebKit%E7%9A%84%E5%BA%94%E7%94%A8%20-%20Android%E6%95%99%E7%A8%8B%20-%20%E5%AE%89%E5%8D%93%E4%B8%AD%E6%96%87%E7%BD%91&ari=1&dbv=2&drs=1&pcs=1349x557&pss=1349x3342&cfv=0&cpl=44&chi=1&cce=true&cec=GBK&tlm=1461494545&ltu=http%3A%2F%2Fandroid.tgbus.com%2FAndroid%2Ftutorial%2F201104%2F348159.shtml&ltr=https%3A%2F%2Fwww.baidu.com%2Flink%3Furl%3D4L0129SklXSdIOjNHyL3AAKIPFm5Mh9vLwQcV1YpdvjhYubaTIrX740F_V6Vm45WGoi9-1-tr34X08RjYiPbJAN2AEmI5LXPrANRaF7qFjm%26wd%3D%26eqid%3Ddafbd662000a494d00000002571ca2fb&ecd=1&psr=1366x768&par=1366x706&pis=-1x-1&ccd=24&cja=true&cmi=158&col=zh-CN&cdo=-1&tcn=1461494546&qn=e783edb4e97ce18d&tt=1461494545583.394.1349.1357" width="640" height="60" align="center,center" vspace="0" hspace="0" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" style="border:0; vertical-align:bottom;margin:0;" allowtransparency="true"></iframe>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: