Действительно ли JQuery работает в WebView? - PullRequest
1 голос
/ 17 августа 2011

Кто-то говорит, что может, но я не вижу ни одного примера о JQuery в WebView. Я пробовал много способов, но безуспешно. Это простой пример кода. CSS работает, а JQuery - нет.

1) Добавлено интернет-разрешение.

2) Javascript был включен.

3) Проверено на эмуляторах 1.6 и 2.2.

public class UsingJQueryActivity extends Activity {
    private WebView webView;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(final Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        webView = (WebView)findViewById(R.id.webView1);
        webView.getSettings().setJavaScriptEnabled(true);
        webView.loadUrl("file:///android_asset/js_please_run.html");
    }
}

"активы / js_please_run.html"

<html>
<head>  
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.js" type="text/javascript"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js" type="text/javascript"></script> 
    <script>
        alert('Hello world');
        confirm("Hello android");                       
    </script>
    <style>
    div {
        color: red;
    }
    </style>
</head>
<body>
    <div>
        All I hear is raindrops.Falling on the rooftop. Oh baby tell me why you have to go. 
        Cause this pain I feel you won't go away. And today, I'm officially missing you.
    </div>
</body>
</html>

1 Ответ

2 голосов
/ 17 августа 2011

WebView по умолчанию не будет отображать диалоги, так как это является частью пользовательского интерфейса, вам придется протестировать javascript каким-либо другим способом или установить WebChromeClient, который показывает диалоги, см. onJsAlert()

Полезно установить WebChromeClient как этот:

public class DebugWebChromeClient extends WebChromeClient {
    private static final String TAG = "DebugWebChromeClient";

    @Override
    public boolean onConsoleMessage(ConsoleMessage m) {
            Log.d(TAG, m.lineNumber() + ": " + m.message() + " - " + m.sourceId());

            return true;
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...