2020-04-02-星期四【源码可私聊我,QQ:386335886】
写篇文章不容易,点个赞再走吧,求求了~
目 录
网络访问-思维导图
玩Android网站---查看登录Cookie
适配器相关设置
点击文章列表-进行页面跳转
WebView布局控件
给ListView添加点击事件处理---传递页面链接
在ReadActivity中接收参数
在WebView中打开链接
WebView无法加载---更换镜像
隐藏标题栏
效果展示
登录成功---保存用户名、密码【可能要考】
自动登录
强制登录
不登录,不许使用App
添加菜单
新建菜单文件夹
添加 菜单资源
设置菜单样式
设置菜单图标
收藏文章列表
服务器端收藏文章
https://share.weiyun.com/1vVLYnlb
网 址 :https://wanandroid.com
postman 接口、测试、工具
private void initView() {
//handler = new MyHandler(this);
listArticle = findViewById(R.id.listArticle);
adapter = new CommonAdapter(this, null, R.layout.item_article) {
@Override
public void convert(ViewHolder helper, Article item) {
helper.setText(R.id.textView, item.getTitle());
helper.setText(R.id.textView3, item.getShareUser());
helper.setText(R.id.textView5, item.getSuperChapterName() + "/" + item.getChapterName());
}
};
listArticle.setAdapter(adapter); // 设置适配器
}
strUrl = getIntent().getStringExtra("link");
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);
}
}
菜鸟教程 :https://www.runoob.com/w3cnote/android-tutorial-activity-start.html 【貌似没有!】
- 判断是否保存 ---> 需要保存
- 打开登录窗口时,获取保存的值(如果值存在!)
//登录成功,是否保存用户名和密码
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);
- 登录窗口 不作为 启动窗口;
- WanListActivity作为启动Activity,启动时获取用户名与密码,然后登录;
- 登录成功,重新获取资源【 getData() 】。
菜鸟教程---菜单
https://www.runoob.com/w3cnote/android-tutorial-menu.html
https://wanandroid.com/blog/show/2
最好封装成方法【传递Id参数】
写篇文章不容易,点个赞再走吧,求求了~