簡體   English   中英

使用Javascript在Webview(Android)中填寫表單而沒有輸入類型的元素ID(文本和密碼)?

[英]Using Javascript to fill form in webview(Android) without element ID of input type- text and password?

我已經在我的應用程序的webview中打開了一個網站(Cyber​​oam-college)的登錄頁面。 現在,我想這樣做,以便用戶不必一次又一次地輸入用戶名和密碼,而是可以從列表或其他地方選擇它,該應用程序將自動填寫用戶名,密碼並單擊登錄。 我讀過要做到這一點,我需要在Webview中實現javascript。

問題是,用戶名和密碼字段的html標記中都沒有ID,只是名稱屬性-

<input type="text" name="username">
<input type="password" name="password">

登錄按鈕具有ID,因此可以使用-

<input type="submit" name="btnSubmit" value="Login" id="logincaption">

現在,我需要以某種方式使用MainActivity.java中變量中存儲的字符串來填充用戶名textField,然后填充密碼字段,最后,當用戶單擊存儲用戶名和密碼列表的列表中的元素時,最后單擊登錄按鈕。

請告訴我如何在Android中實現此功能!

首先請確保不是iframe。 我相信,如果您可以構建本機登錄,則沒有理由添加WebView進行登錄。 無論如何,如果您需要選擇輸入,則可以使用:

  function login(){
        document.querySelector("input[name=username]").value  = "username";
        document.querySelector("input[name= password]").value  = "password";
        document.forms[0].submit();
 }

要將值從Java代碼傳遞給JS,您必須編寫一個網橋並觸發JS函數。您可以在此處閱讀如何構建網橋: http : //blog.cuelogic.co.in/simple-android-java-javascript-bridge/

首先,使用以下語句

@SuppressLint("SetJavaScriptEnabled")

然后,您可以:

mWebView = (WebView) findViewById(R.id.webview); 
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.setWebChromeClient(new WebChromeClient());
mWebView.setWebViewClient(new WebViewClient(){
    @Override
    public void onPageFinished(WebView view, String url) {

        String javascript="javascript: document.getElementById('someid').innerHTML='Hello World!';";
        view.loadUrl(javascript);
    }
});
mWebView.loadUrl(URL);

您可以使用此方法插入Java接口,以通過Java方法異步控制。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM