2017-04-06 16 views
-1

我是Android的初學者。如何在加載Android時調用javascript方法

我在android中使用了javascript方法。我想在應用第一次加載時調用它。

例如,

testMethod = function(str) { 
    alert("hi" + str); 
}//javascript 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    mWebView.getSettings().setJavaScriptEnabled(true); 
    mWebView.getSettings().setDefaultTextEncodingName("utf-8"); 
    mWebView.loadUrl("file:///index.html"); 
    mWebView.addJavascriptInterface(androidBridge, "jsinterface"); 

    mWebView.loadUrl("javascript:testMethod('javascript')"); 
} 

我想這裏是警報會立即彈出,當我啓動應用程序。

但沒有任何反應。

關於此問題,我有兩個問題。

1.我可以在Android的onCreate方法中調用並使用javascript方法嗎?

2.如果可能,我該怎麼辦?

回答

1

如果您想在開始時顯示彈出窗口,只需使用默認AlertDialog即可。請參閱下面的代碼。

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    showMessage("My Message Here", "Title here"); 
} 

private void showMessage(String data, String title){ 
     new AlertDialog.Builder(this) 
       .setTitle(title) 
       .setMessage(data) 
       .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int which) { 
         // continue 
        } 
       }) 
       .show(); 
    } 
+0

感謝您的回答!這很好,但我真正想要做的是獲得javascript的價值並打印它。最後我會在android中使用該值。我可以使用你的答案做到這一點嗎? – aaa

0
  1. 退房的index.html是否真的加載。我想這個webview沒有正確加載你的html,bcz它不是一個無效的文件路徑。嘗試file:///mnt/sdcard/index.html。 (或有可能)
  2. 嘗試將mWebView.loadUrl("javascript:testMethod('javascript')")放在view.post或view.postDelayed中。
+0

html頁面加載良好,但它仍然不起作用。我想,這可能是JavaScript錯誤。謝謝你的幫助! – aaa

相關問題