• 受不了Android SDK文档打开缓慢问题,自己开发简易脱机浏览器。


    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>





  • 相关阅读:
    python---读取/写入excel用例数据
    unitest框架--认识与基本使用
    python--模拟蜂窝网(https)登陆总结
    python--实践--模拟浏览器(http)登陆
    python--return小练习
    python--smtp邮件使用
    关于商城价格变动对订单影响的问题
    history.back新页面跳转
    PHP无限极分类
    htaccess分布式配置文件常用写法
  • 原文地址:https://www.cnblogs.com/yfceshi/p/6978427.html
Copyright © 2020-2023  润新知