
需要在AndroidManifestxml中加权限。
<uses-permission android:name="comandroidbrowserpermissionREAD_HISTORY_BOOKMARKS"></uses-permission>
String string = null;
ContentResolver contentResolver = getContentResolver();
Cursor cursor = contentResolverquery(Uriparse("content://browser/bookmarks"), new String[]{"url"}, null, null, null);
while (cursor != null && cursormoveToNext()) {
string = cursorgetString(cursorgetColumnIndex("url"));
Logd("debug", string == null "null":string);
}
重写shouldoverrideURL里面获得URL,然后自己通过>
import androidcontentContext;
import androidnetConnectivityManager;
import androidnetNetworkInfo;
public class NetManager {
Context context;
public NetManager(Context context) {
thiscontext = context;
}
// 判断网络是否可用的方法
public boolean isOpenNetwork() {
ConnectivityManager connectivity = (ConnectivityManager) context
getSystemService(ContextCONNECTIVITY_SERVICE);
if (connectivity != null) {
NetworkInfo[] info = connectivitygetAllNetworkInfo();
if (info != null)
for (int i = 0; i < infolength; i++)
if (info[i]getState() == NetworkInfoStateCONNECTED) {
return true;
}
}
return false;
}
// 判断WIFI网络是否可用的方法
public boolean isOpenWifi() {
ConnectivityManager connManager = (ConnectivityManager) context
getSystemService(ContextCONNECTIVITY_SERVICE);
NetworkInfo mWifi = connManager
getNetworkInfo(ConnectivityManagerTYPE_WIFI);
return mWifiisConnected();
}
}
public static void netManager(final Context a) {
netManager = new NetManager(a);
if (!netManagerisOpenNetwork()) {
// 如果网络不可用,则d出对话框,对网络进行设置
Builder builder = new Builder(a);
buildersetTitle("没有可用的网络");
buildersetMessage("是否对网络进行设置");
buildersetPositiveButton("确定",
new androidcontentDialogInterfaceOnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Intent intent = null;
try {
String sdkVersion = androidosBuildVERSIONSDK;
if (IntegervalueOf(sdkVersion) > 10) {
intent = new Intent(
androidproviderSettingsACTION_WIRELESS_SETTINGS);
} else {
intent = new Intent();
ComponentName comp = new ComponentName(
"comandroidsettings",
"comandroidsettingsWirelessSettings");
intentsetComponent(comp);
intentsetAction("androidintentactionVIEW");
}
astartActivity(intent);
} catch (Exception e) {
eprintStackTrace();
}
}
});
buildersetNegativeButton("取消",
null);
buildershow();
}else {
ToastmakeText(a, "网络不给力,请确认您的网络连接", ToastLENGTH_LONG)show();
}
}
转载,仅供参考。
由于Android可用于具有各种屏幕尺寸和像素密度的设备,因此您应该在网页设计中考虑到这些因素,以便您的网页始终以适当的大小显示。
当您定位到Android设备的网页时,您应该考虑以下两个主要因素:
视口
视口是为您的网页提供可绘制区域的矩形区域。 您可以指定多个视口属性,例如其大小和初始刻度。 最重要的是视图端口宽度,它定义了从网页的角度可用的水平像素总数(可用的CSS像素数)。
屏幕密度
WebView类和大多数Web浏览器将您的CSS像素值转换为与密度无关的像素值,因此您的网页以与中密度屏幕(约160dpi)相同的可感知大小显示。 然而,如果图形是您的网页设计的重要元素,则应该密切关注不同密度下的缩放,因为320dpi屏幕上的300像素宽的图像将被放大(使用每个CSS像素更多的物理像素) ,它可以产生人造物(模糊和像素化)
视口是您的网页绘制的区域。 虽然视口的总可见区域与缩放后的屏幕大小匹配,但视口具有自己的像素尺寸,可用于网页。 例如,尽管设备屏幕的物理宽度可能为480像素,但视口的宽度可以为800像素。 当视口比例为10时,这允许设计为800像素宽的网页在屏幕上完全可见。 默认情况下,Android(包括Chrome)上的大多数网络浏览器都将视口设置为较大的尺寸(称为“宽视口模式”,大约为980px宽)。 许多浏览器也尽可能缩小,默认情况下显示完整的视口宽度(称为“概览模式”)。
注意:当您的页面在WebView中呈现时,默认情况下不会使用宽视口模式(页面以完全缩放显示)。 您可以使用setUseWideViewPort()启用宽视口模式。
您可以使用文档<head>中的<meta name =“viewport”>标签来定义网页视口的属性,例如宽度和初始缩放级别。
以下语法显示所有支持的视口属性和每个受支持的值的类型:
例如,以下<meta>标记指定视口宽度应与设备屏幕宽度完全相符,并且应禁用缩放功能:
当优化您的移动设备的站点时,通常应将宽度设置为“设备宽度”,以使尺寸完全符合所有设备,然后使用CSS媒体查询来灵活地调整布局以适应不同的屏幕尺寸。
注意:只有当您确定您的网页布局是灵活的并且内容适合小屏幕的宽度时,才应禁用用户缩放。
Android浏览器和WebView支持CSS媒体功能,允许您为特定的屏幕密度创建样式 - -webkit-device-pixel-ratio CSS媒体功能。 您应用于此功能的值应为“075”,“1”或“15”,以表示样式分别用于具有低密度,中密度或高密度屏幕的设备。
例如,您可以为每个密度创建单独的样式表:
或者,在一个样式表中指定不同的样式:
有关处理不同屏幕密度(尤其是图像)的更多信息,请参阅高DPI图像以获得可变像素密度
使用JavaScript定位设备密度
Android浏览器和WebView支持DOM属性,可以让您查询当前设备的密度,即windowdevicePixelRatio DOM属性。此属性的值指定用于当前设备的缩放因子。例如,如果windowdevicePixelRatio的值为“10”,则设备被认为是中密度设备,默认情况下不应用缩放;如果值为“15”,则设备被认为是高密度设备,默认情况下页面缩放为15x;如果值为“075”,则设备被认为是低密度设备,默认情况下页面缩放为075x。当然,Android浏览器和WebView应用的扩展是基于网页的目标密度,如关于定义视口目标密度的部分所述,默认目标是中等密度,但是您可以更改目标来影响如何您的网页会缩放不同的屏幕密度。
例如,以下是使用JavaScript查询设备密度的方法:
Supporting Different Screens in Web Apps
以上内容为官方翻译,翻译不准确地方望指出:
webView = (WebView) findViewById(Ridwebview);
// 设置支持javascript
webViewgetSettings()setJavaScriptEnabled(true);
// 启动缓存
webViewgetSettings()setAppCacheEnabled(true);
// 设置缓存模式
webViewgetSettings()setCacheMode(WebSettingsLOAD_DEFAULT);
// 加载网页
webViewloadUrl("
>
以上就是关于android 开发中,如何获取上网记录全部的内容,包括:android 开发中,如何获取上网记录、Android 中 Webview 怎么获取打开的网页的 HTML 代码、Android如何获取网络连接状态及怎样调用网络配置界面等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)