android webview 学习笔记

来源:互联网 发布:mac ps添加字体模版 编辑:程序博客网 时间:2024/05/02 05:38

今天学习了webview,从各处找来的资料,记录如下。

package com.example.webview;import android.app.Activity;import android.content.Context;import android.os.Bundle;import android.view.KeyEvent;import android.view.Menu;import android.view.Window;import android.webkit.JavascriptInterface;import android.webkit.WebChromeClient;import android.webkit.WebSettings;import android.webkit.WebView;import android.webkit.WebViewClient;import android.widget.Toast;public class MainActivity extends Activity {private WebView webView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);requestWindowFeature(Window.FEATURE_NO_TITLE);webView = (WebView) findViewById(R.id.webview);webView.loadUrl("http://baidu.com");/**滚动条风格,为0指滚动条不占用空间,直接覆盖在网页上  */webView.setScrollBarStyle(0);//设置本地调用对象及其接口  webView.addJavascriptInterface(new JavaScriptObject(getApplicationContext()), "myObj");  webView.setWebViewClient(new WebViewClient(){@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) {/**返回值是true的时候控制去WebView打开,为false调用系统浏览器或第三方浏览器*/view.loadUrl(url);return true;}});/** * 调用网页中的方法webView.loadUrl("javascript:funFromjs()"); */webView.setWebChromeClient(new WebChromeClient() {@Overridepublic void onProgressChanged(WebView view, int newProgress) {if (newProgress == 100) {/** *  网页加载完成*/} else {/** *  加载中*/}}});WebSettings webSettings = webView.getSettings();webSettings.setJavaScriptEnabled(true);/**优先使用缓存**/webSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);/**不使用缓存**/webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE);/**设置字符编码*/webSettings.setDefaultTextEncodingName("GBK");}@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {if(keyCode==KeyEvent.KEYCODE_BACK){if(webView.canGoBack()){webView.goBack();//返回上一页面return true;}else{System.exit(0);//退出程序}}return super.onKeyDown(keyCode, event);}@Overridepublic 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;}public class JavaScriptObject {      Context mContxt;  //    @JavascriptInterface //sdk17版本以上加上注解      public JavaScriptObject(Context mContxt) {          this.mContxt = mContxt;      }        public void fun1FromAndroid(String name) {          Toast.makeText(mContxt, name, Toast.LENGTH_LONG).show();      }        public void fun2(String name) {          Toast.makeText(mContxt, "调用fun2:" + name, Toast.LENGTH_SHORT).show();      }  } }

0 0
原创粉丝点击