现在的位置: 首页 > 综合 > 正文

Android WebView的使用

2013年10月26日 ⁄ 综合 ⁄ 共 9847字 ⁄ 字号 评论关闭
Java代码 
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:orientation="vertical" android:layout_width="fill_parent"  
  4.     android:layout_height="fill_parent">  
  5.     <TextView android:layout_width="fill_parent"  
  6.         android:layout_height="wrap_content" android:text="@string/hello" />  
  7.     <EditText android:hint="请输入URL" android:id="@+id/EditText01"  
  8.         android:layout_width="fill_parent" android:layout_height="wrap_content"></EditText>  
  9.     <Button android:text="OK" android:id="@+id/Button01"  
  10.         android:layout_width="fill_parent" android:layout_height="wrap_content"></Button>  
  11.     <WebView android:id="@+id/WebView" android:layout_width="fill_parent"  
  12.         android:layout_height="wrap_content"></WebView>  
  13. </LinearLayout>  
Java代码 
  1. package com.Aina.Android;  
  2.   
  3. import android.app.Activity;  
  4. import android.app.AlertDialog;  
  5. import android.app.AlertDialog.Builder;  
  6. import android.content.DialogInterface;  
  7. import android.os.Bundle;  
  8. import android.view.KeyEvent;  
  9. import android.view.LayoutInflater;  
  10. import android.view.View;  
  11. import android.view.Window;  
  12. import android.webkit.JsPromptResult;  
  13. import android.webkit.JsResult;  
  14. import android.webkit.URLUtil;  
  15. import android.webkit.WebChromeClient;  
  16. import android.webkit.WebSettings;  
  17. import android.webkit.WebView;  
  18. import android.webkit.WebViewClient;  
  19. import android.widget.Button;  
  20. import android.widget.EditText;  
  21. import android.widget.TextView;  
  22.   
  23. public class Test extends Activity {  
  24.     /** Called when the activity is first created. */  
  25.     private EditText et = null;  
  26.     private Button btn = null;  
  27.     private WebView wv = null;  
  28.     private WebSettings ws = null;  
  29.     @Override  
  30.     public void onCreate(Bundle savedInstanceState) {  
  31.         super.onCreate(savedInstanceState);  
  32.         setContentView(R.layout.main);  
  33.         et = (EditText) this.findViewById(R.id.EditText01);  
  34.         btn = (Button) this.findViewById(R.id.Button01);  
  35.         wv = (WebView) this.findViewById(R.id.WebView);  
  36.         ws = wv.getSettings();  
  37.         ws.setAllowFileAccess(true);//设置允许访问文件数据  
  38.         ws.setJavaScriptEnabled(true);//设置支持javascript脚本  
  39.         ws.setBuiltInZoomControls(true);//设置支持缩放  
  40.         wv.setWebViewClient(new WebViewClient(){  
  41.             public boolean shouldOverrideUrlLoading(WebView view,String url){  
  42.                 //当有新连接时,使用当前的 WebView  
  43.                 view.loadUrl(url);  
  44.                 return true;  
  45.             }  
  46.         });  
  47.         wv.setWebChromeClient(new WebChromeClient(){  
  48.             public boolean onJsAlert(WebView view,String url,String message,final JsResult result){  
  49.                 //构建一个Builder来显示网页中的alert对话框  
  50.                 Builder builder = new Builder(Test.this);  
  51.                 builder.setTitle("提示对话框");  
  52.                 builder.setMessage(message);  
  53.                 builder.setPositiveButton(android.R.string.ok, new AlertDialog.OnClickListener(){  
  54.   
  55.                     @Override  
  56.                     public void onClick(DialogInterface dialog, int which) {  
  57.                         // TODO Auto-generated method stub  
  58.                         result.confirm();  
  59.                     }  
  60.                       
  61.                 });  
  62.                 builder.setCancelable(false);  
  63.                 builder.create();  
  64.                 builder.show();  
  65.                 return true;  
  66.             }  
  67.             public boolean onJsConfirm(WebView view,String url,String message,final JsResult result){  
  68.                 Builder builder = new Builder(Test.this);  
  69.                 builder.setTitle("带选择的对话框");  
  70.                 builder.setMessage(message);  
  71.                 builder.setPositiveButton(android.R.string.ok, new AlertDialog.OnClickListener(){  
  72.   
  73.                     @Override  
  74.                     public void onClick(DialogInterface dialog, int which) {  
  75.                         // TODO Auto-generated method stub  
  76.                         result.confirm();  
  77.                     }  
  78.                       
  79.                 });  
  80.                 builder.setNeutralButton(android.R.string.cancel, new AlertDialog.OnClickListener(){  
  81.   
  82.                     @Override  
  83.                     public void onClick(DialogInterface dialog, int which) {  
  84.                         // TODO Auto-generated method stub  
  85.                         result.cancel();  
  86.                     }  
  87.                       
  88.                 });  
  89.                 builder.setCancelable(false);  
  90.                 builder.create();  
  91.                 builder.show();  
  92.                 return true;  
  93.             }  
  94.             public boolean onJsPrompt(WebView view,String url,String message,String defaultValue,final JsPromptResult result){  
  95.                 LayoutInflater inflater = LayoutInflater.from(Test.this);  
  96.                 final View v = inflater.inflate(R.layout.prom_dialog, null);  
  97.                 //设置 TextView对应网页中的提示信息  
  98.                 ((TextView)v.findViewById(R.id.TextView_PROM)).setText(message);  
  99.                 //设置EditText对应网页中的输入框  
  100.                 ((EditText)v.findViewById(R.id.EditText_PROM)).setText(defaultValue);  
  101.                 Builder builder = new Builder(Test.this);  
  102.                 builder.setTitle("带输入的对话框 ");  
  103.                 builder.setView(v);  
  104.                 builder.setPositiveButton(android.R.string.ok, new AlertDialog.OnClickListener(){  
  105.   
  106.                     @Override  
  107.                     public void onClick(DialogInterface dialog, int which) {  
  108.                         // TODO Auto-generated method stub  
  109.                         String value = ((EditText)v.findViewById(R.id.EditText_PROM)).getText().toString();  
  110.                         result.confirm(value);  
  111.                     }  
  112.                       
  113.                 });  
  114.                 builder.setNegativeButton(android.R.string.cancel, new AlertDialog.OnClickListener(){  
  115.   
  116.                     @Override  
  117.                     public void onClick(DialogInterface dialog, int which) {  
  118.                         // TODO Auto-generated method stub  
  119.                         result.cancel();  
  120.                     }  
  121.                       
  122.                 });  
  123.                 builder.setOnCancelListener(new DialogInterface.OnCancelListener(){  
  124.   
  125.                     @Override  
  126.                     public void onCancel(DialogInterface dialog) {  
  127.                         // TODO Auto-generated method stub  
  128.                         result.cancel();  
  129.                     }  
  130.                       
  131.                 });  
  132.                 builder.create();  
  133.                 builder.show();  
  134.                 return true;  
  135.             }  
  136.             //设置网页加载的进度条  
  137.             public void onProgressChanged(WebView view,int newProgress){  
  138.                 Test.this.getWindow().setFeatureInt(Window.FEATURE_PROGRESS, newProgress*100);  
  139.                 super.onProgressChanged(view, newProgress);  
  140.             }  
  141.             //设置应用程序的标题  
  142.             public void onReceivedTitle(WebView view,String title){  
  143.                 Test.this.setTitle(title);  
  144.                 super.onReceivedTitle(view, title);  
  145.             }  
  146.         });  
  147.         btn.setOnClickListener(new Button.OnClickListener(){  
  148.   
  149.             @Override  
  150.             public void onClick(View v) {  
  151.                 // TODO Auto-generated method stub  
  152.                 String url = et.getText().toString();  
  153.                 //判断输入的内容是不是网址  
  154.                 if(URLUtil.isNetworkUrl(url)){  
  155.                     wv.loadUrl(url);  
  156.                 }else{  
  157.                     et.setHint("输入的网址不合法,请重新输入");  
  158. //                  et.setText("输入的网址不合法,请重新输入");  
  159.                 }  
  160.             }  
  161.               
  162.         });  
  163.     }  
  164.     @Override  
  165.     public boolean onKeyDown(int keyCode, KeyEvent event) {  
  166.         if(keyCode==KeyEvent.KEYCODE_BACK && wv.canGoBack()){  
  167.             wv.goBack();//返回前一个页面  
  168.             return true;  
  169.         }  
  170.         return super.onKeyDown(keyCode, event);  
  171.     }  
  172.       
  173. }  
Java代码 
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:gravity="center_horizontal"  
  4.     android:orientation="vertical"  
  5.     android:layout_width="fill_parent"  
  6.     android:layout_height="wrap_content"  
  7.     >  
  8.     <TextView   
  9.     android:id="@+id/TextView_PROM"  
  10.         android:layout_width="fill_parent"  
  11.     android:layout_height="wrap_content"/>  
  12.     <EditText   
  13.     android:id="@+id/EditText_PROM"  
  14.     android:layout_width="fill_parent"  
  15.     android:layout_height="wrap_content"  
  16.     android:selectAllOnFocus="true"  
  17.     android:scrollHorizontally="true"/>  
  18. </LinearLayout>  
Java代码 
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     package="com.Aina.Android" android:versionCode="1" android:versionName="1.0">  
  4.     <application android:icon="@drawable/icon" android:label="@string/app_name">  
  5.         <activity android:name=".Test" android:label="@string/app_name">  
  6.             <intent-filter>  
  7.                 <action android:name="android.intent.action.MAIN" />  
  8.                 <category android:name="android.intent.category.LAUNCHER" />  
  9.             </intent-filter>  
  10.         </activity>  
  11.   
  12.     </application>  
  13.     <uses-permission android:name="android.permission.INTERNET" />  
  14.   
  15. </manifest>   
Java代码 
  1. <%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="GBK"%>  
  2.   
  3. <html>  
  4.   <head>  
  5.     <title>index.jsp</title>  
  6. <script type="text/JavaScript">     
  7. function s(){  
  8. alert("Good Morning!");      
  9. }  
  10. function d(){  
  11. confirm("Are you ok?")  
  12. }  
  13. function f(){  
  14. prompt("What’s your name?")  
  15. }  
  16. </script>   
  17.   </head>  
  18.     
  19.   <body>  
  20.   下面我们演示三种对话框  
  21.   <br/><br/>  
  22.   <input type="button" value="警告,提醒对话框" onclick="s()">  
  23.   <br/><br/>  
  24.   <input type="button" value="带选择的对话框" onclick="d()">  
  25.   <br/><br/>  
  26.   <input type="button" value="要求用户输入的对话框" onclick="f()">  
  27.   </body>  
  28. </html>  

抱歉!评论已关闭.