2013-06-24 40 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