Android应用程序:如何在WebView中从另一个类使用loadURL? [英] Android App: How to loadUrl in WebView from another class?
问题描述
I'm很新的Android应用程序和Java。我想我的应用程序用于显示所有所需要的网页视图。用户可以在一个HTML按钮点击或关联这个发送到我的Android的Java类的要求,例如显示另一页。
I´m quite new to Android app programming and Java. I want my App to use a WebView for showing all what is needed. The user can click on an HTML-Button or Link an this sends a request to my Android java class, for example to show another page.
为此,我有我的主类加载网页视图是这样的:
Therefor I have my main class loading the Webview like this:
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");
在公共类JavaScriptInterface
我想有一个函数加载另一个网址:
In the public class JavaScriptInterface
I want to have a function loading another URL:
public void showOffers() {
WebView myWebView = (WebView) ((Activity) mContext).findViewById(R.id.webview);
myWebView.loadUrl("file:///android_asset/html/offers.html");
}
但是,这doesn't编译,因为:活动不能被解析为一个类型
我怎样才能从我的JavaScriptInterface类访问的WebView加载另一个URL?
How can I access the WebView from my JavaScriptInterface class to load another URL?
推荐答案
定义类 JavaScriptInterface
的内部类的活动的
并保存参考的WebView
作为你的活动的成员变量
。
Define the class JavaScriptInterface
as inner class of your Activity
and store the reference to the WebView
as member variable of your Activity
.
由于内部类可以访问它们中定义的类的成员变量,你可以改变你的code这样:
Because inner classes can access member variables of the class they are defined in, you can change your code to this:
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");
}
}
}
这篇关于Android应用程序:如何在WebView中从另一个类使用loadURL?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!