google android sdk离线文档打开的时候特别慢,据说是要从谷歌官网拉取一些东西导致的。脱机浏览能够解决该问题。PC端能够使用firefox。
可是Android端貌似没有支持脱机工作的浏览器。这让我非常伤心。
决定开发一个简易的脱机浏览器以便在手机端高速查看sdk文档。
设计到的知识点主要为:WebView的初始化以及缩放问题;将应用程序加入到文件打开方式中。
废话不多说:下面为代码部分:
MainActivity:
package net.xby1993.simpleexplorer; import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.util.Log; import android.view.KeyEvent; import android.view.Window; import android.view.WindowManager; import android.webkit.WebChromeClient; import android.webkit.WebSettings; import android.webkit.WebView; import android.webkit.WebViewClient; public class MainActivity extends Activity { private static final String TAG=MainActivity.class.getSimpleName(); private WebView webView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //设置全屏无标题栏 requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(R.layout.activity_main); webView = (WebView)findViewById(R.id.webView); WebSettings settings= webView.getSettings(); //开启缩放支持 settings.setSupportZoom(true); settings.setBuiltInZoomControls(true); settings.setJavaScriptEnabled(true); //默认对缩放比例有限制,导致用户体验不好。所以须要设置为使用随意比例缩放。 settings.setUseWideViewPort(true); //使页面之间能够点击链接导航 webView.setWebViewClient(new WebViewClient()); webView.setWebChromeClient(new WebChromeClient()); //初始页面一般过大。我们设置为75% webView.setInitialScale(75); Intent intent=getIntent(); //提取文件管理器打开方式传送的文件地址 if(intent.getAction().equals(Intent.ACTION_VIEW)){ String strUri=intent.getDataString(); Log.d(TAG,TAG); Log.d(TAG,strUri); Log.d(TAG,Uri.encode(strUri)); webView.loadUrl(strUri); } } @Override public boolean onKeyDown(int keyCode,KeyEvent event){ //确保能够通过返回键浏览历史页面栈 if(keyCode==event.KEYCODE_BACK&&webView.canGoBack()){ webView.goBack(); return true; } return super.onKeyDown(keyCode,event); } }
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?
> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="net.xby1993.simpleexplorer" > <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <!-- 删除联网权限的代码 <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> <!-- 这里是为了在文件打开方式中加入本应用 --> <intent-filter> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT"/> <data android:mimeType="text/html"/> </intent-filter> </activity> </application> </manifest>