android studio开发<十二> WebView访问网页和安卓权限

网页访问参考了这篇博客http://blog.csdn.net/wu_wxc/article/details/46846337



首先,在AndroidManifest.xml中添加网络访问权限,<manifest>节点下加上<uses-permissionandroid:name="android.permission.INTERNET" />


package com.example.administrator.my;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import android.view.KeyEvent;
import android.webkit.WebView;
import android.webkit.WebSettings;
import android.webkit.WebViewClient;

public class MainActivity extends AppCompatActivity {

    WebView webView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        webView= (WebView) findViewById(R.id.webView);

        WebSettings webSettings = webView.getSettings();
        webSettings.setJavaScriptEnabled(true);//允许运行JavaScript
        
        webView.loadUrl("http://www.baidu.com");             //加载外网
        webView.setWebViewClient(new HelloWebViewClient ());
        //webView.loadUrl("file:///android_asset/XX.html");   //本地网站
    }

    @Override
    //设置回退
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if ((keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack()) {
            webView.goBack(); //调用goBack()返回WebView的上一页面
            return true;
        }
        return false;
    }

    //Web视图
    private class HelloWebViewClient extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
        }
    }
}



WebSetting常用方法


setDomStorageEnabled             开启缓存
setAllowFileAccess                  启用或禁用WebView访问文件数据
setBlockNetworkImage          是否显示网络图像
setBuiltInZoomControls         设置是否支持缩放 
setCacheMode                       设置缓冲的模式
setDefaultFontSize                 设置默认的字体大小
setDefaultTextEncodingName 设置在解码时时候用的默认编码
setFixedFontFamily                 设置固定使用的字体
setJavaScriptEnabled                 设置是否支持Javascript
setLayoutAlgorithm                 设置布局方式
setLightTouchEnabled         设置用鼠标激活被选项
setSupportZoom                         设置是否支持变焦


WebViewClient常用方法


doUpdateVisitedHistory 更新历史记录
onFormResubmission 应用程序重新请求网页数据
onLoadResource        加载指定地址提供的资源
onPageFinished                网页加载完毕
onPageStarted                网页开始加载
onReceivedError                报告错误信息
onScaleChanged        当WebView发生改变
shouldOverrideUrlLoading 控制新的连接在当前WebView中打开



安卓权限转载了这篇博客http://www.cnblogs.com/bluestorm/p/3645215.html


<uses-permission android:name="android.permission.ACCESS_CHECKIN_PROPERTIES" ></uses-permission>
允许读写访问"properties"表在checkin数据库中,改值可以修改上传


<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" ></uses-permission>
允许一个程序访问CellID或WiFi热点来获取粗略的位置


<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" ></uses-permission>
允许一个程序访问精良位置(如GPS)


<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" ></uses-permission>
允许应用程序访问额外的位置提供命令


<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" ></uses-permission>
允许程序创建模拟位置提供用于测试


<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" ></uses-permission>
允许程序访问有关GSM网络信息


<uses-permission android:name="android.permission.ACCESS_SURFACE_FLINGER" ></uses-permission>
允许程序使用SurfaceFlinger底层特性


<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" ></uses-permission>
允许程序访问Wi-Fi网络状态信息


<uses-permission android:name="android.permission.ADD_SYSTEM_SERVICE" ></uses-permission>
允许程序发布系统级服务


<uses-permission android:name="android.permission.BATTERY_STATS" ></uses-permission>
允许程序更新手机电池统计信息


<uses-permission android:name="android.permission.BLUETOOTH" ></uses-permission>
允许程序连接到已配对的蓝牙设备


<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" ></uses-permission>
允许程序发现和配对蓝牙设备


<uses-permission android:name="android.permission.BRICK" ></uses-permission>
请求能够禁用设备


<uses-permission android:name="android.permission.BROADCAST_PACKAGE_REMOVED" ></uses-permission>
允许程序广播一个提示消息在一个应用程序包已经移除后


<uses-permission android:name="android.permission.BROADCAST_STICKY" ></uses-permission>
允许一个程序广播常用intents


<uses-permission android:name="android.permission.CALL_PHONE" ></uses-permission>
允许一个程序初始化一个电话拨号不需通过拨号用户界面需要用户确认


<uses-permission android:name="android.permission.CALL_PRIVILEGED" ></uses-permission>
允许一个程序拨打任何号码,包含紧急号码无需通过拨号用户界面需要用户确认


<uses-permission android:name="android.permission.CAMERA" ></uses-permission>
请求访问使用照相设备


<uses-permission android:name="android.permission.CHANGE_COMPONENT_ENABLED_STATE" ></uses-permission>
允许一个程序是否改变一个组件或其他的启用或禁用


<uses-permission android:name="android.permission.CHANGE_CONFIGURATION" ></uses-permission>
允许一个程序修改当前设置,如本地化


<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" ></uses-permission>
允许程序改变网络连接状态


<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" ></uses-permission>
允许程序改变Wi-Fi连接状态


<uses-permission android:name="android.permission.CLEAR_APP_CACHE" ></uses-permission>
允许一个程序清楚缓存从所有安装的程序在设备中


<uses-permission android:name="android.permission.CLEAR_APP_USER_DATA" ></uses-permission>
允许一个程序清除用户设置


<uses-permission android:name="android.permission.CONTROL_LOCATION_UPDATES" ></uses-permission>
允许启用禁止位置更新提示从无线模块


<uses-permission android:name="android.permission.DELETE_CACHE_FILES" ></uses-permission>
允许程序删除缓存文件


<uses-permission android:name="android.permission.DELETE_PACKAGES" ></uses-permission>
允许一个程序删除包


<uses-permission android:name="android.permission.DEVICE_POWER" ></uses-permission>
允许访问底层电源管理


<uses-permission android:name="android.permission.DIAGNOSTIC" ></uses-permission>
允许程序RW诊断资源


<uses-permission android:name="android.permission.DISABLE_KEYGUARD" ></uses-permission>
允许程序禁用键盘锁


<uses-permission android:name="android.permission.DUMP" ></uses-permission>
允许程序返回状态抓取信息从系统服务


android.permission.EXPAND_STATUS_BAR
允许一个程序扩展收缩状态栏


android.permission.FACTORY_TEST
作为一个工厂测试程序,运行在root用户


android.permission.FLASHLIGHT
访问闪光灯


android.permission.FORCE_BACK
允许程序强行一个后退操作是否在顶层activities


android.permission.FOTA_UPDATE android
 一个预留权限


android.permission.GET_ACCOUNTS
访问一个帐户列表在Accounts Service中


android.permission.GET_PACKAGE_SIZE
允许一个程序获取任何package占用空间容量


android.permission.GET_TASKS
允许一个程序获取信息有关当前或最近运行的任务,一个缩略的任务状态,是否活动等等


android.permission.HARDWARE_TEST
允许访问硬件
 
android.permission.INJECT_EVENTS
允许一个程序截获用户事件如按键、触摸、轨迹球等等到一个时间流


android.permission.INSTALL_PACKAGES
允许一个程序安装packages


android.permission.INTERNAL_SYSTEM_WINDOW
允许打开窗口使用系统用户界面


android.permission.INTERNET
允许程序打开网络套接字


android.permission.MANAGE_APP_TOKENS
允许程序管理(创建、催后、z- order默认向z轴推移)程序引用在窗口管理器中


android.permission.MASTER_CLEAR
恢复出厂设置权限,清除一切用户数据


android.permission.MODIFY_AUDIO_SETTINGS
允许程序修改全局音频设置


android.permission.MODIFY_PHONE_STATE
允许修改话机状态,如电源,人机接口等


android.permission.MOUNT_UNMOUNT_FILESYSTEMS
允许挂载和反挂载文件系统可移动存储


android.permission.PERSISTENT_ACTIVITY
允许一个程序设置他的activities显示


android.permission.PROCESS_OUTGOING_CALLS
允许程序监视、修改有关播出电话


android.permission.READ_CALENDAR
允许程序读取用户日历数据


android.permission.READ_CONTACTS
允许程序读取用户联系人数据


android.permission.READ_FRAME_BUFFER
允许程序屏幕波或和更多常规的访问帧缓冲数据


android.permission.READ_INPUT_STATE
允许程序读取底层系统日志文件


android.permission.READ_OWNER_DATA
允许程序读取所有者数据


android.permission.READ_SMS
允许程序读取短信息


android.permission.READ_SYNC_SETTINGS
允许程序读取同步设置


android.permission.READ_SYNC_STATS
允许程序读取同步状态


android.permission.REBOOT
请求能够重新启动设备


android.permission.RECEIVE_BOOT_COMPLETED
允许一个程序接收到 ACTION_BOOT_COMPLETED广播在系统完成启动


android.permission.RECEIVE_MMS
允许一个程序监控将收到MMS彩信,记录或处理


android.permission.RECEIVE_SMS
允许程序监控一个将收到短信息,记录或处理


android.permission.RECEIVE_WAP_PUSH
允许程序监控将收到WAP PUSH信息


android.permission.RECORD_AUDIO
允许程序录制音频


android.permission.REORDER_TASKS
允许程序改变Z轴排列任务


android.permission.RESTART_PACKAGES
允许程序重新启动其他程序


android.permission.SEND_SMS
允许程序发送SMS短信


android.permission.SET_ACTIVITY_WATCHER
允许程序监控或控制activities已经启动全局系统中


android.permission.SET_ALWAYS_FINISH
允许程序控制是否活动间接完成在处于后台时


android.permission.SET_ANIMATION_SCALE
修改全局信息比例


android.permission.SET_DEBUG_APP
配置一个程序用于调试


android.permission.SET_ORIENTATION
允许底层访问设置屏幕方向和实际旋转


android.permission.SET_PREFERRED_APPLICATIONS
允许一个程序修改列表参数PackageManager.addPackageToPreferred() 和PackageManager.removePackageFromPreferred()方法


android.permission.SET_PROCESS_FOREGROUND
允许程序当前运行程序强行到前台


android.permission.SET_PROCESS_LIMIT
允许设置最大的运行进程数量


android.permission.SET_TIME_ZONE
允许程序设置时间区域


android.permission.SET_WALLPAPER
允许程序设置壁纸


android.permission.SET_WALLPAPER_HINTS
允许程序设置壁纸hits


android.permission.SIGNAL_PERSISTENT_PROCESSES
允许程序请求发送信号到所有显示的进程中


android.permission.STATUS_BAR
允许程序打开、关闭或禁用状态栏及图标


android.permission.SUBSCRIBED_FEEDS_READ
允许一个程序访问订阅RSS Feed内容提供


android.permission.SUBSCRIBED_FEEDS_WRITE
系统暂时保留改设置


android.permission.SYSTEM_ALERT_WINDOW
允许一个程序打开窗口使用 TYPE_SYSTEM_ALERT,显示在其他所有程序的顶层


android.permission.VIBRATE
允许访问振动设备


android.permission.WAKE_LOCK
允许使用PowerManager的 WakeLocks保持进程在休眠时从屏幕消失


android.permission.WRITE_APN_SETTINGS
允许程序写入API设置


android.permission.WRITE_CALENDAR
允许一个程序写入但不读取用户日历数据


android.permission.WRITE_CONTACTS
允许程序写入但不读取用户联系人数据


android.permission.WRITE_GSERVICES
允许程序修改Google服务地图


android.permission.WRITE_OWNER_DATA
允许一个程序写入但不读取所有者数据


android.permission.WRITE_SETTINGS
允许程序读取或写入系统设置


android.permission.WRITE_SMS
允许程序写短信


android.permission.WRITE_SYNC_SETTINGS
允许程序写入同步设置


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是重阳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值