将字符串写入WebView字段

时间:2018-03-05 11:15:44

标签: android html webview

我有一个从相机预览中读取条形码(Code128)的应用程序。 我将条形码结果放在字符串或条形码中。

我正在从软件公司访问Web应用程序,并希望将字符串传递到活动的html字段中。

用户应决定在哪个字段中粘贴条形码值。 如何在Webview中获取"活动"(单击字段)以及如何将字符串自动粘贴到其中?

我会像软键盘那样将字符串写入字段。

祝你好运, ·阿尔

3 个答案:

答案 0 :(得分:0)

您可以在Android WebView中使用JavaScript界面​​来检测点击字段并将参数传递给他们。

答案 1 :(得分:0)

在android中的webView中使用JavaScript

在html文件中2个元素(用户名和按钮)

<html>

//...


<input name="username" type="text" id="id_username">

<input type="submit" class="button-green" value="Log in">

//...

</html>

为webView创建自定义WebViewClient

class WebViewClientCustom extends WebViewClient {

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        Log.i("WebViewClientCustom", "Redirecting URL " + url);
        return false;
    }

    @Override
    public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
        super.onReceivedError(view, errorCode, description, failingUrl);
        Log.i("WebViewClientCustom", "Page error: " + description);
    }

    @Override
    public void onPageStarted(WebView view, String url, Bitmap favicon) {
        super.onPageStarted(view, url, favicon);
        try {
            view.addJavascriptInterface(new UserData(), "UserData");
        } catch (Exception e) {
            e.printStackTrace();
        }
        Log.i("WebViewClientCustom", "Loading URL: " + url);
    }

    @Override
    public void onPageFinished(WebView webView, String url) {
        super.onPageFinished(webView, url);

        Log.i("WebViewClientCustom", "onPageFinished");
        //add javascript
        webView.loadUrl("javascript: document.getElementsByClassName(\"button-green\")[0].onclick = function() {\n        var username = document.getElementById(\"id_username\").value;\n          UserData.saveUsername(username);\n    };");

    }

}

创建类UserData

public class UserData {

    public static String username;

    //saveData
    @JavascriptInterface
    public void saveUsername(String username) {
        this.username = username;
    }

}

并结束

WebView mWebView = new WebView(activity);
mWebView.setWebViewClient(new WebViewClientCustom()); //add custom WebViewClient
mWebView.getSettings().setJavaScriptEnabled(true); //enable JavaScript for webView
mWebView.loadUrl(url);

答案 2 :(得分:0)

感谢您的javascript建议!

我用android Webview和Javascript找到了一个非常简单的解决方案。 我只需要将这一个字符串写入我的活动字段,这样我就不需要Javascript适配器了。

这对我有用:

public void setValue()
{

    String jscript =  "document.activeElement.value="+"'"+ yourVariable+"'";
    mWebView.evaluateJavascript(jscript,null);

}

此字符串使活动字段成为写入&#34;您的变量&#34;进入它。