【问题标题】:why is my javascript not loading为什么我的 javascript 没有加载
【发布时间】:2014-03-25 12:53:38
【问题描述】:

我在我的 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根本没有加载。

【问题讨论】:

  • 不熟悉Cordova,但你试过cwv.loadUrl("javascript:sayHelloFromJS('hi')");吗?
  • 是的,我实际上试过 cwv.loadUrl("javascript:alert('hi')");正在工作
  • 我总是使用带有扩展 DroidGap 的活动的 Cordova,以及扩展 CordovaPlugin 的不同类,但我假设 CordovaInterface 基于 WebInterface,那么这就是我加载 js webView.loadUrl("javascript :scrollTo("值")");请注意,这是一个网络视图。

标签: javascript android cordova webview cordova-3


【解决方案1】:

你试过了吗

cwv.getSettings().setJavaScriptEnabled(true);

【讨论】:

    【解决方案2】:

    CordovaWebView 使用java.lang.String.startsWith() 来检查传递给loadUrl 的值,以决定如何“加载”URL。 the source 已经有一段时间了。

    startsWith() 区分大小写所以你想要

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

    不是

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

    ...否则您将收到协议不受支持的错误。

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

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

    【讨论】:

      猜你喜欢
      • 2013-06-16
      • 2012-08-25
      • 2022-01-19
      • 1970-01-01
      • 2015-12-24
      • 2012-01-09
      • 1970-01-01
      • 2016-09-16
      • 1970-01-01
      相关资源
      最近更新 更多