首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从android中的webview中提取单个变量?

从Android中的WebView中提取单个变量的方法如下:

  1. 使用JavaScript接口

在WebView中,可以通过添加一个JavaScript接口来实现JavaScript和原生代码之间的交互。首先,在Android应用中创建一个JavaScript接口,并在WebView中添加该接口。

代码语言:java
复制
public class WebAppInterface {
    Context mContext;

    WebAppInterface(Context c) {
        mContext = c;
    }

    @JavascriptInterface
    public void setVariable(String variable) {
        // 在这里处理变量
    }
}

WebView webView = (WebView) findViewById(R.id.webview);
webView.getSettings().setJavaScriptEnabled(true);
webView.addJavascriptInterface(new WebAppInterface(this), "Android");

然后,在WebView中的JavaScript代码中调用该接口。

代码语言:javascript<script type="text/javascript">
复制
    function setVariable(variable) {
        Android.setVariable(variable);
    }
</script>
  1. 使用WebViewClient

通过实现WebViewClient类并重写onPageFinished方法,可以在页面加载完成后执行JavaScript代码,从而提取变量。

代码语言:java
复制
webView.setWebViewClient(new WebViewClient() {
    @Override
    public void onPageFinished(WebView view, String url) {
        super.onPageFinished(view, url);
        view.evaluateJavascript("JavaScript代码", null);
    }
});

在这里,“JavaScript代码”是一个用于提取变量的JavaScript函数,例如:

代码语言:javascript
复制
javascript: {
    var variable = document.getElementById("variable").value;
    Android.setVariable(variable);
}

这样,在WebView中提取单个变量的方法就实现了。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 快速缓解 32 位 Android 环境下虚拟内存地址空间不足的“黑科技”

    背景 随着微信新业务的不断增长,因 32 位设备上虚拟内存地址空间限制导致的内存分配失败问题也越来越突出。目前市场上的存量 32 位设备数量仍然较多,且预计还会继续存在一段时间。为了保障微信在这些设备上的可用性,我们尝试了一些常规优化手段,前期收效是显著的,但随着业务规模和数量的增长,虚拟内存的消耗速度越来越快,常规优化手段的收益也越来越低。要在这种趋势下继续缓解内存不足的问题,在常规优化手段的基础上就还需要一些能快速见效的办法,即标题里提到的“黑科技”。 这里还要特别感谢 simsun 大佬参与方案预研

    05
    领券