我创建了一个家庭或主要活动,其中有一些图标,其中一个是facebook,点击它就可以通过意图启动facebook.xml
该xml页面的代码设置如下:
<WebView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:weightSum="10"
android:id="@+id/webView" >
</WebView>
我想加载网址:“http://www.j.mp/tkf4mApp”
链接到此xml文件的Java文件如下所示:
import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;
public class Facebook extends Activity {
private WebView webView;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.facebookpage);
webView=(WebView)findViewById(R.id.webView);
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl("http://www.j.mp/tkf4mApp");
}
}
但是不是在facebook.xml中的应用程序内显示网页,而是在外部启动浏览器,但我希望它在应用程序内显示。
答案 0 :(得分:14)
根据这个答案:How to load external webpage inside WebView您需要在致电loadUrl
之前设置一个WebViewClient:
webView.setWebViewClient(new WebViewClient());
您被发送到浏览器的原因是,如果没有设置WebViewClient,则导航的默认操作是将它们转发到浏览器。
答案 1 :(得分:0)
package com.example.webview;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.Window;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends Activity {
private WebView browser;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
browser = (WebView)findViewById(R.id.webView1);
browser.setWebViewClient(new MyBrowser());
}
public void open(View view){
String url = "http://www.j.mp/tkf4mApp";
browser.getSettings().setLoadsImagesAutomatically(true);
browser.getSettings().setJavaScriptEnabled(true);
browser.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
browser.loadUrl(url);
}
private class MyBrowser extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
此链接可以帮助您...... http://www.tutorialspoint.com/android/android_webview_layout.htm
答案 2 :(得分:0)
参考以下项目,这个工作
答案 3 :(得分:0)
这很晚了,但可能会对其他开发人员有所帮助。...
这是您在加载URL之前需要添加的代码。
webview.setWebViewClient(new WebViewClient() {
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return false;
}
});
根据文档,文档用语如下所示
/*@return {@code true} if the host application wants to leave the current WebView
* and handle the url itself, otherwise return {@code false}.*/
所以它只是说,如果您从 shouldOverrideUrlLoading 方法返回 true ,它将要求设备的默认浏览器处理打开URL的请求,如果您返回 false ,则您的URL仅通过Webview加载。
现在,您可以在此 setWebViewClient 调用之后在 webview 中加载URL,或者还可以在 shouldOverrideUrlLoading 方法中加载URL,然后返回值。