android的webView加载网页

来源:互联网 发布:snh48黑历史 知乎 编辑:程序博客网 时间:2024/05/21 07:54

android的webView加载网页


      android或ios平台中经常会嵌入一下web前端的页面进行展示交互。


      android和ios中都可以通过webView来加载web前端页面



      实现效果:



     


    实现思路:

    1.先制作手机适配的web前端网页

    2.通过App的 webView加载web前端网页的网址

    3、改变按键逻辑


  实现代码:

fragmentthree.xml:

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:id="@+id/layout_back"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    >    <!--<TextView-->        <!--android:layout_width="wrap_content"-->        <!--android:layout_height="wrap_content"-->        <!--android:text="three"-->        <!--/>-->    <WebView        android:layout_width="match_parent"        android:layout_height="match_parent"        android:id="@+id/webView"        /></LinearLayout>

fragmentthree.java:

package com.example.myframe.fragment;import android.content.Intent;import android.net.Uri;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.support.annotation.Nullable;import android.support.v4.app.Fragment;import android.view.KeyEvent;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.webkit.WebSettings;import android.webkit.WebView;import android.webkit.WebViewClient;import android.widget.Toast;import com.example.myframe.R;/** * Created by Administrator on 2017/3/10. */public class fragmentthree extends Fragment{    private WebView  webView;    //懒加载fragment    @Override    public void onSaveInstanceState(Bundle outState) {        super.onSaveInstanceState(outState);        setUserVisibleHint(true);    }    //改变webView按键逻辑    private Handler handler = new Handler() {        @Override        public void handleMessage(Message message) {            switch (message.what) {                case 1: {                    webViewGoBack();                }                break;            }        }    };    private void webViewGoBack() {        webView.goBack();    }    @Override    public View onCreateView(LayoutInflater inflater,  ViewGroup container,Bundle savedInstanceState) {        View view = inflater.inflate(R.layout.fragmentthree, null);        view.setClickable(true);// 防止点击穿透,底层的fragment响应上层点击触摸事件        Toast.makeText(getActivity().getApplicationContext(),"fragmentthree",Toast.LENGTH_SHORT).show();        //通过webView启动网页        startWebView(view);        //通过intent启动网页//        startWebByIntent();        return view;    }    //通过webView启动网页    private void startWebView(View view){        //webView加载网页        webView = (WebView)view.findViewById(R.id.webView);        //WebView加载web资源        webView.loadUrl("http://test.81717111.com/chenchi");        //覆盖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;            }        });        //改写物理按键——返回的逻辑        //启用支持javascript        WebSettings settings = webView.getSettings();        settings.setJavaScriptEnabled(true);        webView.setOnKeyListener(new View.OnKeyListener() {            public boolean onKey(View v, int keyCode, KeyEvent event) {                if ((keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack()) {                    handler.sendEmptyMessage(1);                    return true;                }                return false;            }        });    }    //通过intent启动网页    private void startWebByIntent(){        Intent intent = new Intent();        intent.setAction("android.intent.action.VIEW");        Uri content_url = Uri.parse("http://www.163.com");        intent.setData(content_url);        intent.setClassName("com.android.browser","com.android.browser.BrowserActivity");        startActivity(intent);    }    @Override    public void onDestroy() {        super.onDestroy();        Toast.makeText(getActivity().getApplicationContext(),"onDestroy--->fragmentthree",Toast.LENGTH_SHORT).show();    }}


原创粉丝点击