2020-04-02-星期四【源碼可私聊我,QQ:386335886】
寫篇文章不容易,點個贊再走吧,求求了~
目 錄
網絡訪問-思維導圖
玩Android網站---查看登錄Cookie
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>
效果展示
登錄成功---保存用戶名、密碼【可能要考】
- 判斷是否保存 ---> 需要保存
- 打開登錄窗口時,獲取保存的值(如果值存在!)
//登錄成功,是否保存用戶名和密碼
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() 】。
強制登錄
不登錄,不許使用App
添加菜單
菜鳥教程---菜單
新建菜單文件夾
添加 菜單資源
設置菜單樣式
設置菜單圖標
收藏文章列表
服務器端收藏文章
最好封裝成方法【傳遞Id參數】
寫篇文章不容易,點個贊再走吧,求求了~