他们如何在webview中加载url而不是orroids内部浏览器?

时间:2015-10-09 19:50:35

标签: android webview

我试图实现这一目标:MKyong - WebView。 要获得确切的提示,请先查看最后一张图片"下载源代码"。

我的应用程序代码是:

    bookingView = (WebView) findViewById(R.id.fullscreen_content);
    bookingView.getSettings().setJavaScriptEnabled(true);
    bookingView.loadUrl("http://www.google.com");

但是该代码所做的是在android中的默认浏览器/内部浏览器中打开url(在本例中是Google),它并不意味着在我正在制作的android应用程序中。

有什么想法吗?

2 个答案:

答案 0 :(得分:10)

loadUrl()电话

之前添加此行
bookingView.setWebViewClient(new WebViewClient());

答案 1 :(得分:8)

这就是答案:

功能

  1. 在WebView上加载网址
  2. 在Webview网站上打开另一个页面,不要在本地浏览器上打开。
  3. 如果您按下后退按钮将转到应用前的页面。
  4. <强> MainActivity.java

    public class MainActivity extends AppCompatActivity {
    
            WebView webview;
            @Override
            protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);
                webview = (WebView)findViewById(R.id.webview);
                webView();
            }
    
        //Metodo llamar el webview
        private void webView(){
            //Habilitar JavaScript (Videos youtube)
            webview.getSettings().setJavaScriptEnabled(true);
    
            //Handling Page Navigation
            webview.setWebViewClient(new MyWebViewClient());
    
            //Load a URL on WebView
            webview.loadUrl("http://stackoverflow.com/");
        }
    
        // Metodo Navigating web page history
        @Override public void onBackPressed() {
            if(webview.canGoBack()) {
                webview.goBack();
            } else {
                super.onBackPressed();
            }
        }
    
        // Subclase WebViewClient() para Handling Page Navigation
        private class MyWebViewClient extends WebViewClient {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                if (Uri.parse(url).getHost().equals("stackoverflow.com")) { //Force to open the url in WEBVIEW
                    return false;
                }
                Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
                startActivity(intent);
                return true;
            }
        }
    
    }
    

    <强> activity_main.xml中

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >
    
        <WebView android:id="@+id/webview"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
    
    </LinearLayout>
    

    在AndroidManifest.xml中包含此内容

    <uses-permission android:name="android.permission.INTERNET" />
    

    <强>的AndroidManifest.xml

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.example.webview" >
    
        <uses-permission android:name="android.permission.INTERNET" />
    
        <application
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:theme="@style/AppTheme" >
            <activity
                android:name=".MainActivity"
                android:label="@string/app_name" >
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
    
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
        </application>
    
    </manifest>
    

    <强> RESULT

    START PAGE

    Start page

    WEBVIEW网站上的另一页

    Click in another page in the start page