[英]Android App: How to loadUrl in WebView from another class?
我是Android應用程序編程和Java的新手。 我希望我的應用使用WebView來顯示所有需要的內容。 用戶可以單擊HTML按鈕或“鏈接”,這會向我的Android java類發送請求,例如顯示另一個頁面。
因此,我的主要課程是這樣加載Webview的:
WebView myWebView = (WebView) findViewById(R.id.webview);
myWebView.addJavascriptInterface(new JavaScriptInterface(this), "Android");
myWebView.setWebViewClient(new WebViewClient());
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
myWebView.loadUrl("file:///android_asset/html/status01.html");
在public class JavaScriptInterface
我希望有一個函數可以加載另一個URL:
public void showOffers() {
WebView myWebView = (WebView) ((Activity) mContext).findViewById(R.id.webview);
myWebView.loadUrl("file:///android_asset/html/offers.html");
}
但這Activity cannot be resolved to a type
編譯,因為: Activity cannot be resolved to a type
如何從JavaScriptInterface類訪問WebView來加載另一個URL?
將類JavaScriptInterface
定義為Activity
內部類,並將對WebView
的引用存儲為Activity
成員變量。
因為內部類可以訪問在其中定義的類的成員變量,所以可以將代碼更改為:
MyWebActivity extends Activity{
private WebView myWebView;
protected void onCreate(Bundle bundle){
myWebView = (WebView) findViewById(R.id.webview);
myWebView.addJavascriptInterface(new JavaScriptInterface(), "Android");
myWebView.setWebViewClient(new WebViewClient());
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
myWebView.loadUrl("file:///android_asset/html/status01.html");
}
private class JavaScriptInterface{
JavaScriptInterface(){
}
public void showOffers() {
myWebView.loadUrl("file:///android_asset/html/offers.html");
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.