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