WebView 載入登入頁 → 用戶輸入帳密點擊登入 → **攔截表單提交** 獲取帳密 → 存儲 (SharedPreferences/加密資料庫) → 後續自動填充。
WebSettings ws = webView.getSettings();
ws.setJavaScriptEnabled(true);
ws.setDomStorageEnabled(true);
ws.setSaveFormData(true); // WebView 內建表單記憶 (API 26+ 棄用)
class JsBridge {
@JavascriptInterface
public void saveCredentials(String username, String password) {
// 存入 SharedPreferences (加密)
}
}
webView.addJavascriptInterface(new JsBridge(), "Android");
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
view.evaluateJavascript(
"document.querySelector('form').addEventListener('submit', function(e) {" +
" var u = document.querySelector('input[type=text], input[name=username]').value;" +
" var p = document.querySelector('input[type=password]').value;" +
" if (u && p) Android.saveCredentials(u, p);" +
"});", null);
}
});