为什么我的javascript没有加载

时间:2014-03-25 12:53:38

标签: javascript android cordova webview cordova-3

我在我的Android应用程序中使用cordova 3.04

这是我的主要活动代码

public class MainActivity extends Activity implements CordovaInterface {

    CordovaWebView cwv;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        cwv = (CordovaWebView) findViewById(R.id.cwv);
        Config.init(this);
        cwv.loadUrl(Config.getStartUrl());
        cwv.loadUrl("JavaScript:sayHelloFromJS('hi')");
    }
}

和html代码是

<!DOCTYPE html>
<html>
    <head>
        <script type="text/javascript">
            function sayHelloFromJS(value) {
                alert("JavaScript says: Hello asasasa !!! How are you?");
            }
        </script>
    </head>
    <body></body>
</html>

我首先加载html页面然后加载javascript为什么html加载正常并且javascript根本没有加载。

2 个答案:

答案 0 :(得分:0)

你试过吗

cwv.getSettings().setJavaScriptEnabled(true);

答案 1 :(得分:0)

CordovaWebView使用java.lang.String.startsWith()来检查传递给loadUrl的值,以决定如何“加载”该网址。这种方式已经在the source中持续了一段时间。

startsWith() 区分大小写,因此您需要

cwv.loadUrl("javascript:sayHelloFromJS('hi')");

不是

cwv.loadUrl("JavaScript:sayHelloFromJS('hi')");

...或者您将获得不支持的协议错误。

我不知道你的意思是“JavaScript没有加载”,但是如果你期望一个警告说“hi”那么你的JS需要修复,因为sayHelloFromJS忽略了传递给它的值; )

    function sayHelloFromJS(value) {
        alert(value);
    }