這是以前的問題的重複。但我會盡力給你一個出發點。
之前加載的網頁視圖(但你已經創建的網頁視圖的實例後),您需要設置一個Javascript接口類。
基本上是:
mWebView.addJavascriptInterface(WebInterface(this), "Android");
// more settings or whatever
mWebView.loadUrl("yourUrl.html.whatever");
界面將生活,無論你想,如果它是一個簡單的項目,你不妨把它在MainActivity類的內部類。它是由你知道如何構建應用程序,但類的基本要點是這樣的:
public class WebInterface {
Context mContext;
public WebInterface(Context c) { this.mContext = c;}
@JavascriptInterface
public void showAlert() {
Toast.makeText(mContext, "This is being called from the interface", Toast.LENGTH_SHORT).show();
}
}
注意,類的名稱是相同的名稱爲您添加到了一個網頁流量。這點很明顯,但你需要讓它們保持一致。現在
,你可能想知道有關「Android」的一部分。檢查一下,在你的JS代碼中,你會這樣做:
<script>
function doSomething(){
Android.showAlert();
}
</script>
你能在這裏看到模式嗎?由於您在WebInterface
類中定義的方法被稱爲showAlert()
,因此Android是您希望在JS內部運行的Java代碼的標識符,您可以使用Android
標識符在WebInterface
內將其稱爲它。這可以在任何你想要的方式命名,但爲了簡單起見,我已經把它忘在Android
。
嘗試,看看其他做題,看其他的例子,如果他們匹配你想要做什麼。在這種情況下,我會說我上面提供的應該是綽綽有餘的。
[複製](https://stackoverflow.com/questions/15673509/calling-javascript-function-from-an-android-activity) –
我添加了一個答案,說明您可能想什麼做。此外,下次試着展示你已經嘗試或做了一些額外的研究。這將有助於降低成本,SO社區有時可能會嚴厲批評,但這是因爲在我們尋求幫助之前,社區會期望某些事情。我已經瞭解到這一點。 –