首页 > 代码库 > 生活编程(四)——学校图书馆简化

生活编程(四)——学校图书馆简化


    每次在信号不好的图书馆打开图书检索的主页就是漫长的等待



其实,所以便萌生了一个想法。我只要简单一个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少了打开搜索的页面,就方便很多了。