. Benim adımı uygulayın:
1.Create bir arayüz geri arama:
public class MediaWebInterface {
public MediaWebInterface() {
}
@JavascriptInterface
public void setEndedIndex(int pIndex) {
// Call when the audio ended.
}
}
2.Create bir dinleyici "sona erdi" içerir javascript:
<script type='text/javascript'>window.onload=function(){var n=document.getElementsByTagName("audio"),r=n.length;for(var o=0;o<r;o++)n[o].setAttribute("index",o),n[o].addEventListener("ended",function(){for(var e=0;e<r;e++)this===n[e]&&window.external.setEndedIndex(e)})}
</script>
3.Load html verileri içine String
ve size javascript yukarıdaki eklenecek html veri String
:
// Enable javascript support
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.addJavascriptInterface(new MediaWebInterface(mHandler), "external");
mWebView.loadDataWithBaseURL(mBaseURL, mHTMLData+aboveJavascript, null, "utf-8", null);
4. Ses durduğunda ve MediaWebInterface.setEndedIndex(pIndex)
'u arayacak ve pIndex sesin dizinidir.
Hava eğlenceli ve deneyin!
Lütfen önce WebView.addJavascriptInterface()'u okuyun!
Uyarma: Eğer proguard kullanıyorsanız, proguard-project.txt
ürününüze takip komut dosyası eklemeniz gerekir. Aksi takdirde, geri arama geçersiz olacaktır. Sınıf adı ve yöntemi gizleneceğinden, javascript geri arama yapamaz.
//Preserved javaScript interface class
-keepclassmembers class com.xxx.xxx.javascript.MediaWebInterface {
public *;
}
herhangi bir yardım son derece şimdiye kadar denedim ne – Fou
takdir edilecektir? Şu an itibariyle, bu sorunu çözmek için çaba harcadığınızı gösteren herhangi bir kod veya gösterge göremiyorum. –
@esme_louise Farklı fikirleri denemedim benim için, sadece bir kodu diğerine değiştirmeye devam et .... – Fou