1. 程式人生 > >為Android的WebView新增播放音樂的介面供javascript呼叫

為Android的WebView新增播放音樂的介面供javascript呼叫

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 = (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());
在要載入到WebView中的html網頁內用Javascript寫如下命令就可以播放指定的音樂了,是不是很簡單呢?
Music.playMusic("ding");