zoukankan      html  css  js  c++  java
  • WebView浅谈

    课程Demo

    public class MainActivity extends Activity {
    private String url = "http://baidu.com/";
    private WebView webView;
    private ProgressDialog dialog;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.web);
    // Uri uri = Uri.parse(url); //url为你要链接的地址
    // Intent intent =new Intent(Intent.ACTION_VIEW, uri);
    // startActivity(intent);
    init();
    }

    private void init() {
    // TODO Auto-generated method stub
    webView = (WebView) findViewById(R.id.webView);
    // WebView加载本地资源
    webView.loadUrl("file:///android_asset/example.html");
    // WebView加载web资源
    webView.loadUrl(url);
    // 覆盖WebView默认通过第三方或者是系统浏览器打开网页的行为,使得网页可以在WebView中打开
    webView.setWebViewClient(new WebViewClient(){

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
    // TODO Auto-generated method stub
    //返回值是true的时候控制网页在WebView中去打开,如果为false调用系统浏览器或第三方浏览器去打开
    view.loadUrl(url);
    return true;
    }
    //WebViewClient帮助WebView去处理一些页面控制和请求通知

    });
    //启用支持JavaScript
    WebSettings settings = webView.getSettings();
    settings.setJavaScriptEnabled(true);
    //WebView加载页面优先使用缓存加载
    settings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
    //监控当前网站的加载进度
    webView.setWebChromeClient(new WebChromeClient(){

    @Override
    public void onProgressChanged(WebView view, int newProgress) {
    // TODO Auto-generated method stub
    //newProgress 1-100之间的整数
    if(newProgress==100)
    {
    //网页加载完毕,关闭ProgressDialog
    closeDialog();
    }
    else
    {
    //网页正在加载,打开ProgressDialog
    openDialog(newProgress);
    }
    }

    private void closeDialog() {
    // TODO Auto-generated method stub
    if(dialog!=null&&dialog.isShowing())
    {
    dialog.dismiss();
    dialog=null;
    }
    }

    private void openDialog(int newProgress) {
    // TODO Auto-generated method stub
    if(dialog==null)
    {
    dialog=new ProgressDialog(MainActivity.this);
    dialog.setTitle("正在加载");
    dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
    dialog.setProgress(newProgress);
    dialog.show();
    }
    else
    {
    dialog.setProgress(newProgress);
    }
    }
    });
    }
    //改写物理按键——返回的逻辑
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
    // TODO Auto-generated method stub
    if(keyCode==KeyEvent.KEYCODE_BACK)
    {
    //Toast.makeText(this, webView.getUrl(), Toast.LENGTH_SHORT).show();
    if(webView.canGoBack())
    {
    webView.goBack();//返回上一页面
    return true; //为了消耗当前页面
    }
    else
    {
    System.exit(0);//退出程序
    }
    }
    return super.onKeyDown(keyCode, event);
    }
    }
  • 相关阅读:
    APP端上传文件至服务器后台,WEB端上传文件存储到服务器
    freemarker模板引擎
    JEECG开发总结
    spring的基本配置
    jeecg解析xml文件
    jeecg查询备份
    jeecg 页面标签规则
    jeecg查询分页
    算法实践——改良的求解数独的暴力搜索法
    算法实践——舞蹈链(Dancing Links)算法求解数独
  • 原文地址:https://www.cnblogs.com/cct1314520/p/6431236.html
Copyright © 2011-2022 走看看