Android复习05【网络编程---WebView获取文章信息、保存用户名与密码、设置菜单样式、收藏文章列表】

2020-04-02-星期四【源码可私聊我,QQ:386335886】

写篇文章不容易再走吧,求求了

目   录

网络访问-思维导图

玩Android网站---查看登录Cookie

适配器相关设置

点击文章列表-进行页面跳转

WebView布局控件

给ListView添加点击事件处理---传递页面链接

在ReadActivity中接收参数

在WebView中打开链接

WebView无法加载---更换镜像

隐藏标题栏

效果展示

登录成功---保存用户名、密码【可能要考】

自动登录

强制登录

不登录,不许使用App

添加菜单

新建菜单文件夹

添加 菜单资源

设置菜单样式

设置菜单图标

收藏文章列表

服务器端收藏文章


网络访问-思维导图

https://share.weiyun.com/1vVLYnlb

玩Android网站---查看登录Cookie

网 址 https://wanandroid.com

postman 接口、测试、工具

适配器相关设置

点击文章列表-进行页面跳转

WebView布局控件

给ListView添加点击事件处理---传递页面链接

在ReadActivity中接收参数

strUrl = getIntent().getStringExtra("link");

在WebView中打开链接

package cn.wangzg.course0602;

import androidx.appcompat.app.AppCompatActivity;

import android.annotation.SuppressLint;
import android.app.ActionBar;
import android.net.http.SslError;
import android.os.Build;
import android.os.Bundle;
import android.view.Window;
import android.webkit.SslErrorHandler;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class ReadActivity extends AppCompatActivity {
    private WebView wvRead;
    private String strUrl;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_read);

        strUrl = getIntent().getStringExtra("link");

        initView();
    }

    @SuppressLint("SetJavaScriptEnabled")
    private void initView() {
        wvRead = findViewById(R.id.wvRead);
        //加载一个网页

//        //声明WebSettings子类
//
//        WebSettings webSettings = wvRead.getSettings();
//        //如果访问的页面中要与Javascript交互,则webview必须设置支持Javascript
//        webSettings.setJavaScriptEnabled(true);
//        //设置自适应屏幕,两者合用
//        webSettings.setUseWideViewPort(true); //将图片调整到适合webview的大小
//        webSettings.setLoadWithOverviewMode(true); // 缩放至屏幕的大小
//        //缩放操作
//        webSettings.setSupportZoom(true); //支持缩放,默认为true。是下面那个的前提。
//        webSettings.setBuiltInZoomControls(true); //设置内置的缩放控件。若为false,则该WebView不可缩放
//        webSettings.setDisplayZoomControls(false); //隐藏原生的缩放控件
//        //其他细节操作
//        webSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); //关闭webview中缓存
//        webSettings.setAllowFileAccess(true); //设置可以访问文件
//        webSettings.setJavaScriptCanOpenWindowsAutomatically(true); //支持通过JS打开新窗口
//        webSettings.setLoadsImagesAutomatically(true); //支持自动加载图片
//        webSettings.setDefaultTextEncodingName("utf-8");//设置编码格式

//        // android 5.0以上默认不支持Mixed Content
//        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
//            wvRead.getSettings().setMixedContentMode(
//                    WebSettings.MIXED_CONTENT_COMPATIBILITY_MODE);
//        }


        //重写shouldOverrideUrlLoading()方法,使得打开网页时不调用系统浏览器, 而是在本WebView中显示
        wvRead.setWebViewClient(new WebViewClient() {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return true;
            }
        });
        wvRead.getSettings().setJavaScriptEnabled(true);  //设置WebView属性,运行执行js脚本
        wvRead.loadUrl(strUrl);

    }
}

WebView无法加载---更换镜像

隐藏标题栏

菜鸟教程 :https://www.runoob.com/w3cnote/android-tutorial-activity-start.html 【貌似没有!】

<activity android:name=".ReadActivity"
android:theme="@style/Theme.AppCompat.DayNight.NoActionBar"></activity>

效果展示

登录成功---保存用户名、密码【可能要考】

  1. 判断是否保存 ---> 需要保存
  2. 打开登录窗口时,获取保存的值(如果值存在!)

//登录成功,是否保存用户名和密码
if (cbRem.isChecked()) {
    SharedPreferences sp = getSharedPreferences("wan", MODE_PRIVATE);
    SharedPreferences.Editor edit = sp.edit();
    edit.putString("name", name);
    edit.putString("pwd", pwd);
    edit.putBoolean("isRem", true); // 是否记住密码
    edit.commit();
}

SharedPreferences sp = getSharedPreferences("wan", MODE_PRIVATE);
String name = sp.getString("name", "");
String pwd = sp.getString("pwd", "");
boolean isRem = sp.getBoolean("isRem", false);
etName.setText(name);
etPwd.setText(pwd);
cbRem.setChecked(isRem);

自动登录

  1. 登录窗口 不作为 启动窗口;
  2. WanListActivity作为启动Activity,启动时获取用户名与密码,然后登录;
  3. 登录成功,重新获取资源【 getData() 】。

强制登录

不登录,不许使用App

添加菜单

菜鸟教程---菜单

https://www.runoob.com/w3cnote/android-tutorial-menu.html

新建菜单文件夹

添加 菜单资源

设置菜单样式

设置菜单图标

收藏文章列表

服务器端收藏文章

https://wanandroid.com/blog/show/2 

最好封装成方法【传递Id参数】 

写篇文章不容易,再走吧,求求了~ 

猜你喜欢

转载自blog.csdn.net/weixin_44949135/article/details/106304215