0

それはとても簡単に思えますが、ほとんど不可能になりつつあります。WebView に表示されているテキストがあり、それを取得する必要があります。

私はあらゆる種類のことを試しました。

webview.loadUrl("javascript:window.HTMLOUT.showHTML(document.innerText);");
webview.loadUrl("javascript:window.HTMLOUT.showHTML(document.documentElement.innerText);");

webview.loadUrl("javascript:window.HTMLOUT.showHTML(document.getElementsByTagName('auth')[0].innerHTML);");

webview.loadUrl("javascript:window.HTMLOUT.showHTML(document.getElementsByTagName('body')[0].innerText);");

webview.loadUrl("javascript:window.HTMLOUT.showHTML(document.getElementsByTagName('html')[0].innerText);");

そして、他のたくさんのもの。これら 2 つの呼び出しで undefined になります。

常にランダムな xml として返そうとします。

class MyJavaScriptInterface   
{  
    @SuppressWarnings("unused")  
    public void showHTML(String html)  
    {  
        Log.d("SHOWING", html);

        new AlertDialog.Builder(myApp)  
            .setTitle("HTML")  
            .setMessage(html)  
            .setPositiveButton(android.R.string.ok, null)  
            .setCancelable(false)  
            .create()  
            .show();  
    }
    public void showHTML(Object html)  
    {
        Log.d("Some random object", "Some random object");
    }
    public void showHTML(XML html)  
    {
        Log.d("Some random XML", "Some random XML");
    }  
}  

それはそれがどのように見えるかです。

助けはありますか?

4

1 に答える 1

2

これは、WebページからAndroidデバイスにテキストを送信する例です。Android上に「トースト」ポップアップメッセージを作成します。

これをWebビューに追加します。

myWebView.addJavascriptInterface(new JavaScriptInterface(this), "Android");

このクラスをプロジェクトに追加します。

 public class JavaScriptInterface {
    Context mContext;

    JavaScriptInterface(Context c) {
        mContext = c;
    }

    public void showToast(String toast) {
        Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show();
    }
}

次のようなJavaScriptを使用して、WebサイトからAndroidに情報を送信します。

    <script type="text/javascript">
           Android.showToast("This is a message");
    </script>
于 2012-11-27T02:10:44.873 に答える