每次在信号不好的图书馆打开图书检索的主页就是漫长的等待。
其实,所以便萌生了一个想法。我只要简单一个form就可以了。然后嵌入到移动设备就可以了。图书馆后台的查询处理是这样的
http://library.com/searchresult.aspx?anywords=%b7%bd%b7%a8&dt=ALL&cl=ALL&dp=20&sf=M_PUB_YEAR&ob=DESC&sm=table&dept=ALL
anywords就是关键,之前以为用js直接跳转,但是中文的url转码变成了很复杂的事情,其实用form的get自然就解决问题了。
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gbk" /> </head> <body> <form action="http://library.com/searchresult.aspx?dt=ALL&cl=ALL&dp=20&sf=M_PUB_YEAR&ob=DESC&sm=table&dept=ALL" method="get"> <input name="anywords"> <button>搜索</button> </form> </body> </html>
不过测试之后发现中文是gb2312转的url编码,所以编码要特别说明,不然就是乱码。
接下来就是嵌入到应用中打开方便点。把上面的html命名为test.html,放进android项目的assets(资产)目录。接下来WebView登场。基础知识就不讲了。
layout:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/LinearLayout01" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/clannad" android:orientation="vertical" > <WebView android:id="@+id/webview" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout>
Library.java
package com.myown.library; import java.util.Calendar; import android.os.Bundle; import android.app.Activity; import android.app.AlertDialog; import android.app.AlertDialog.Builder; import android.app.Dialog; import android.content.DialogInterface; import android.view.KeyEvent; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.Button; import android.widget.Toast; import android.support.v4.app.NavUtils; public class Library extends Activity { private WebView webview; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_library); webview = (WebView) findViewById(R.id.webview); // 设置WebView属性,能够执行Javascript脚本 webview.getSettings().setJavaScriptEnabled(true); // 加载需要显示的网页(如果是url直接填写url,加载本地就如下) webview.loadUrl("file:///android_asset/test.html"); // 设置Web视图 webview.setWebViewClient(new MyWebViewClient()); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if ((keyCode == KeyEvent.KEYCODE_BACK) && webview.canGoBack()) { // goBack(),返回上一页 webview.goBack(); return true; } return false; } // Web视图 private class MyWebViewClient extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } } }
最后,不要忘记了在应用程序配置文件AndroidManifest.xml中添加访问网络的权限。
<uses-permission android:name="android.permission.INTERNET"/>
大功告成。
查询到的页面比较乱,可以添加个适合手机浏览的css。少了打开搜索的页面,就方便很多了。
生活编程(四)——学校图书馆简化,布布扣,bubuko.com
时间: 2024-10-23 14:52:16