Android WebView控件的显示,调用网页,然后隐藏

来源:互联网 发布:手机淘宝超链接 编辑:程序博客网 时间:2024/04/30 03:46

测试环境:

JDK1.7 android 4.0.3,开发工具 eclipse+ADT,废话不多说直接贴代码:


package com.linutest.exa1;

import org.apache.http.util.EncodingUtils;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;

public class MainActivity extends Activity {
    private Button bt_btn;
    private WebView webview;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        bt_btn = (Button) findViewById(R.id.bt_btns);

        bt_btn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {

                System.out.println("onClickButton!");
            }
        });
        
        
        webview = (WebView) findViewById(R.id.webview);
        //webView.loadUrl("http://www.baidu.com");
        webview.getSettings().setJavaScriptEnabled(true);
        String postData = "login_id=13810977186&amt=123";
        //String postData = "fileContents=" + URLEncoder.encode(fileCon, "UTF-8"); 中文字符需要URLEncoder处理
        byte[] postBys=EncodingUtils.getBytes(postData, "base64");
        webview.postUrl("http://192.168.1.17:8097/Lemon/fuyou/netSave2.do", postBys);
        //setContentView(webView);
        
        webview.setWebViewClient( new HelloWebViewClient ());
    }


    
    //Web视图
    private class HelloWebViewClient extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            System.out.println(url);
            if("http://192.168.1.17:8097/close.do".equals(url)){
                view.setVisibility(View.GONE); //隐藏
                view.destroy();
            }else{
                view.loadUrl(url);
            }
            return true;
        }
    }

}

=========================================================

布局文件,activity_main.xml

<LinearLayout  xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <Button
        android:id="@+id/bt_btns"
        android:layout_width="130dp"
        android:layout_height="40dp"
        android:gravity="center"
        android:background="#ff0000"
        android:text="点击按钮"
      
        />
    <WebView  
        android:id="@+id/webview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        />
    
</LinearLayout >


==========================================================================

app配置文件: AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.linutest.exa1"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="21" />
    <uses-permission android:name="android.permission.INTERNET"/>

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        >
        <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>
        
        <activity android:name=".TwoActivity" android:launchMode="standard"/>
    </application>

</manifest>

===============================================================


执行效果:


应用首先打开了一个网页,并且用POST方式传递了两个参数: login_id=13810977186&amt=123




点击页面上的关闭按钮,结果页面就消失了,webview组件也直接关掉了。




服务器端代码就不提供了,就是很简单的spring网页



另外一种调用网页的方法是用android系统自带的浏览器打开,将会离开App的控制范围:

                 Uri uri = Uri.parse("http://www.baidu.com");  
                 Intent it = new Intent(Intent.ACTION_VIEW, uri);  
                 startActivity(it);

这种方式不提供完整代码了。



0 0
原创粉丝点击