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參數】 

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章