На самом деле, это не очень сложно.Здесь я покажу вам, как вызывать собственный код из javascript на странице и наоборот:
Вызов собственного кода из веб-представления :При создании веб-представления добавьте интерфейс javascript (в основном класс java, методы которого будут вызываться через javascript в веб-представлении.
JavaScriptInterface jsInterface = new JavaScriptInterface(this);
webView.getSettings().setJavaScriptEnabled(true);
webView.addJavascriptInterface(jsInterface, "JSInterface");
Определение самого класса интерфейса javascript (это примерный класс Iвзял из другого моего ответа и открывает видео с собственным намерением)
public class JavaScriptInterface {
private Activity activity;
public JavaScriptInterface(Activity activiy) {
this.activity = activiy;
}
public void startVideo(String videoAddress){
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.parse(videoAddress), "video/3gpp"); // The Mime type can actually be determined from the file
activity.startActivity(intent);
}
}
Теперь, если вы хотите вызвать этот код из HTML-кода страницы, вы предоставляете следующий метод:
<script>
function playVideo(video){
window.JSInterface.startVideo(video);
}
</script>
Легко, не правда ли?
Вызов JavaScript-кода из нативного кода :Это также просто предположим, что в коде HTML, загруженном в WebView, вы определили функцию javascript:
<script>
function function(){
//... do something
}
</script>
Затем вы вызываете эту функцию через WebView в собственном коде так:
webView.loadUrl("javascript:function()");