java - 获取原始 HTML/向 WebView 页面添加 Javascript

标签 java android

我有一个用于注册的移动流程,我想在我的应用程序中使用它,但我无法控制源 - 我正在寻找一种方法,在用户完成注册时获取一些数据(确认号等),这些数据将发送到我的应用程序(希望通过 Android 的 addJavascriptInterface )

我确信一件事 - id我需要的元素。流程可能会改变,并且已经有几页长了,所以我正在寻找一个通用的解决方案。我希望的基本想法是:

shouldOverrideUrlLoading 期间向每个页面注入(inject) JavaScript fragment ,它会自动调用我的JavaScript Interface并使用 id 检查字段的值我在找。 (或者只返回整个 HTML,我将用 Java 完成)

view.setWebViewClient(new WebViewClient() {
             @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                 //inject javascript here to get value
                 return false;
            }});

我看过有关使用 addJavascriptInterface 的教程,但它们似乎都假设对将导航到的“单个”页面有一定的控制或理解。由于我的流程可能很长(3页以上)并且无法控制源代码,因此我有兴趣听到任何建议。

最佳答案

检查当前页面的 URL,如果正确,则在当前页面中插入 JavaScript。借助 Java-JS 绑定(bind),您可以获取一些数据。看我之前的回答:Determine element of url from webview shouldOverRideUrlLoading

关于java - 获取原始 HTML/向 WebView 页面添加 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7505868/

相关文章:

java - 抽象类和 Spring MVC @ModelAttribute/@RequestParam

java - 如何在 spring data JPA 中制作多个保存方法?

Java信号量与指定线程的增量计数

java - 显示来自 getBooleanExtra 的多个字符串

android - 在 Activity 中设置内容 View ,并将合并标签设置为根?

Android Studio 调试器应用程序崩溃并出现 InterruptedException

java - ListView 适配器搞乱了项目高度

java - 使用 Selenium 3.0 启动 Firefox 46.0.1 时出现 IllegalStateException

java - Hibernate - native SQL 参数的奇怪顺序

java - 将值设置为 textview 时应用程序崩溃