簡體   English   中英

Android應用程序:如何從另一個類在WebView中加載URL?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM