JQuery真的可以在WebView中运行吗?

时间:2011-08-17 09:31:38

标签: jquery android webview

有人说可以,但我在WebView中没有看到任何关于JQuery的例子。我尝试了很多方法但没有成功。 这是一个简单的示例代码。 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 个答案:

答案 0 :(得分:2)

WebView默认情况下不显示对话框,因为它是用户界面的一部分,您必须以其他方式测试javascript或设置显示对话框的WebChromeClient,请参阅{{3} }

设置像这样的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;
    }

}