6

我在 Android 中的 webview 有问题。我正在使用一个有 2 个片段的应用程序;第一个有一个 EditText,第二个有一个 webview。

是否可以通过调用修改加载页面的 DOM 的 javascript 函数在 webview 中加载的页面中传递 Edittext 的字符串?

例如,在 webview 中加载后:

webview.loadUrl("http://google.it");

我想在谷歌搜索页面的编辑文本中插入一个从 java 传递的字符串;我尝试了这个作为第一步:

webview.setWebViewClient(new WebViewClient() {  
            @Override  
            public void onPageFinished(WebView view, String url)  
            {  
               webview.loadUrl("javascript:(function() {alert();})()");  
            }  
        });  

但不显示警报。

感谢您的任何反馈,并为我不完美的英语感到抱歉。

4

3 回答 3

7

尝试这个:

webview.getSettings().setJavaScriptEnabled(true);
webview.setWebChromeClient(new WebChromeClient());
webview.setWebViewClient(new WebViewClient() {
   @Override
   public void onPageFinished(WebView view, String url){
       String javaScript ="javascript:(function() {alert();})()";
       webview.loadUrl(javaScript);
   }
});
webview.loadUrl(url);

这里是源码链接

于 2017-03-03T13:03:15.560 回答
0

alert() 有点棘手。您需要捕获它并将其转换为 Toast。

看看这个: https ://code.google.com/p/apps-for-android/source/browse/Samples/WebViewDemo/src/com/google/android/webviewdemo/WebViewDemo.java

于 2013-07-22T11:50:04.793 回答
0

这对我有用

  webview.loadUrl("javascript:function sagvelgardkharast() { document.getElementById('gkFooter').style.display='none'; " +
                        " document.getElementById('gkBottom5').style.display='none'; " + 
                        " } sagvelgardkharast(); ");
于 2016-04-30T19:15:11.823 回答