2013-06-24 53 views
0

我嘗試直接從我的應用程序(webview.apk)調用一個javascript函數,爲了啓動一個可以自動播放html5視頻片段的腳本,我試圖在webview loadURL之後添加itt,但沒有運氣。從android webview調用JavaScript函數?

也許有人可以看看代碼。我錯過了什麼?謝謝!

package tscolari.mobile_sample; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.webkit.WebSettings; 
import android.webkit.WebView; 
import android.webkit.WebViewClient; 
import android.webkit.WebChromeClient; 

import android.media.MediaPlayer; 


public class InfoSpotActivity extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 


     setContentView(R.layout.main); 

     WebView mainWebView = (WebView) findViewById(R.id.mainWebView); 

     WebSettings webSettings = mainWebView.getSettings(); 
     webSettings.setJavaScriptEnabled(true); 

     mainWebView.setWebChromeClient(new WebChromeClient()); 

     mainWebView.setWebViewClient(new MyCustomWebViewClient()); 
     mainWebView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY); 




     mainWebView.loadUrl("http://server.info-spot.net"); 
     mainWebView.loadUrl("javascript:playVideo()"); 


    } 


    private class MyCustomWebViewClient extends WebViewClient { 
     @Override 
     public boolean shouldOverrideUrlLoading(WebView view, String url) { 
      view.loadUrl(url); 
      return true; 
     } 
    } 
} 

回答

5

等待直到網頁加載完成,然後執行webview.loadUrl( 「JavaScript的:的playVideo()」);

private class MyCustomWebViewClient extends WebViewClient { 
    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) { 
     view.loadUrl(url); 
     return true; 
    } 
    public void onPageFinished(WebView view, String url) { 
     view.loadUrl("javascript:playVideo()"); 
    } 
} 
+0

感謝您的幫助! –

+0

view.loadUrl(「javascript:playVideo()」);是答案 – AAlferez