2014-03-25 51 views
1

我在我的Android应用为什么我的JavaScript未加载

使用科尔多瓦3.04,这是我的mainactivity代码

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没有加载。

+0

不熟悉科尔多瓦,但你试过'cwv.loadUrl(“javascript:sayHelloFromJS('hi')”);'? – nikis

+0

是的,我尝试了它实际上cwv.loadUrl(“javascript:alert('hi')”);正在工作 – Sar009

+0

我总是使用cordova扩展DroidGap的活动,以及扩展CordovaPlugin的另一个类,但我认为CordovaInterface基于WebInterface,那么这就是我如何加载js webView.loadUrl(“javascript:scrollTo(”value “)”);请注意,这是一个web视图。 – cesztoszule

回答

0

你尝试

cwv.getSettings().setJavaScriptEnabled(true); 
+0

我曾尝试过但未能正常工作 – Sar009

0

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); 
    } 
相关问题