android的webView加载网页

本文介绍了在Android应用中使用WebView加载Web前端页面的方法,包括制作手机适配网页、通过WebView加载网址以及调整按键逻辑的详细步骤,旨在实现Android应用内无缝展示Web内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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();
    }

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

慕容屠苏

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值