為Android的WebView新增播放音樂的介面供javascript呼叫
阿新 • • 發佈:2019-01-01
Android的WebView不支援播放音樂,但是隻要給它新增相關介面,就可以從Javascript中呼叫Android類中介面程式來播放音樂了,這對於混合開發是非常需要的。
步驟:
為Android和WebView內的Javascript新增播放音樂的介面:
private class Music{ public MediaPlayer mp1= MediaPlayer.create(getApplicationContext(),R.raw.ding); public MediaPlayer mp2= MediaPlayer.create(getApplicationContext(),R.raw.explosion); public MediaPlayer mp3= MediaPlayer.create(getApplicationContext(),R.raw.ju); public MediaPlayer mp4= MediaPlayer.create(getApplicationContext(),R.raw.sail); @JavascriptInterface public void playMusic(String song){ switch(song){ case "ding": mp1.start(); break; case "explosion": mp2.start(); break; case "ju": mp3.start(); break; case "sail": mp4.start(); break; } } }
在要載入到WebView中的html網頁內用Javascript寫如下命令就可以播放指定的音樂了,是不是很簡單呢?webview = (WebView) findViewById(R.id.webView); //為webview新增chrome瀏覽器功能 webview.setWebChromeClient(new WebChromeClient()); webview.setWebViewClient(new WebViewClient()); //設定WebView屬性,能夠執行Javascript指令碼 webview.getSettings().setJavaScriptEnabled(true); //新增JS介面 Music music=new Music(); webview.addJavascriptInterface(music, "Music"); //載入需要顯示的網頁 String url_asset = "file:///android_asset/index.html"; webview.loadUrl(url_asset); //設定Web檢視 webview.setWebViewClient(new MyWebViewClient());
Music.playMusic("ding");