1. 安卓 webview怎么使用,求高手
Android和iOS系统都提供了标准的浏览器控件,在android中是WebView,ios中为UIWebView。在iOS中你实例化一个UIWebView即可调用loadRequest来加载一个网页,但是在Android中你不仅需要创建一个WebView,还需要做一些其他的事情。
2. Android系统 WebView是什么有什么用
现在越来越多的APP都内置了Web网页去加载视图,也就是我们常说的Hybrid APP混合应用,市场上很多平台都是这样做的,比如我们经常使用的淘宝、京东等电商平台。这些是如何实现的呢?在我们Android中有一个WebView组件,它就可以实现此类功能。它是Android中的原生UI控件,主要用于在APP应用中方便地访问远程网页或本地HTML资源,同时WebView也在Android中充当Java代码和JS代码之间交互的桥梁,实际上也可以将WebView看做一个功能最小化的浏览器。下面我们一起来看看WebView的一些常用的使用方法。
WebView是Android系统提供的一个能显示网页的系统控件,它是一个特殊的View,同时也是一个ViewGroup,可以有很多其他子View。在Android 4.4以下(不包含4.4)系统WebView底层实现是采用WebKit内核,而在Android 4.4及其以上Google采用了Chromium内核作为系统WebView的底层内核支持。在这一变化中Android提供的WebView相关API并没有发生较大变化,在4.4上也兼容低版本的API并且引进了少部分API。这里简单介绍下基于Chromium的WebView和基于WebKit的WebView之间的差异,基于Chromium的Webview提供了更广的HTML5、CSS3、JavaScript支持,在Android系统版本5.0上基于Chromium 37,WebView提供了绝大多数的HTML5特性支持,除此之外Chromium也支持远程调试(Chrome DevTools)。WebKit JavaScript引起采用WebCore JavaScript在Android 4.4上换成了V8能直接提升JavaScript性能。
二、作用
1、显示和渲染Web页面
2、使用html文件(网络上或本地assets中)作为布局
3、可与JavaScript交互调用
注: WebView控件功能强大,除了具有一般View的属性和设置外,还可以对Url请求、页面加载、渲染、页面交互进行强大的处理。
3. 超链接跳转到底应该怎么用上webview
/**
*通用的webview,只需要传入2个参数即可,param1:title标题param2:url网站
*
*
*/
{
privateWebViewwebview;
privateImageButtonback;
privateLinearLayoutpublic_webview_top;
privatebooleanshowTitle;
privateProgressBarprogressBar;
@SuppressLint(JavascriptInterface)
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.public_webview);
Intentintent=getIntent();
Stringurl=intent.getStringExtra(url);
Stringtitle=intent.getStringExtra(title);
showTitle=intent.getBooleanExtra(show_title,true);
public_webview_top=(LinearLayout)findViewById(R.id.public_webview_top);
if(showTitle){
public_webview_top.setVisibility(View.VISIBLE);
}else{
public_webview_top.setVisibility(View.GONE);
}
TextViewtitletv=(TextView)findViewById(R.id.public_webview_title);
titletv.setText(title);
progressBar=(ProgressBar)findViewById(R.id.public_webview_progressbar);
webview=(WebView)findViewById(R.id.public_webview_webview);
//加载需要显示的网页
webview.addJavascriptInterface(newJavascriptInterface(PublicWebView.this),Phoenix_Android);
webview.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
//设置WebView属性,能够执行Javascript脚本
webview.getSettings().setJavaScriptEnabled(true);
//加载需要显示的网页
webview.loadUrl(url);
//设置Web视图
webview.setWebViewClient(newMyWebViewClient());
webview.setWebChromeClient(newWebChromeClient(){
@Override
publicvoidonProgressChanged(WebViewview,intnewProgress){
if(newProgress==100){
progressBar.setVisibility(View.GONE);
}else{
progressBar.setVisibility(View.VISIBLE);
}
super.onProgressChanged(view,newProgress);
}
});
back=(ImageButton)findViewById(R.id.public_webview_back);
back.setOnClickListener(newBackListener(PublicWebView.this,null,1));
}
@SuppressLint(NewApi)
{
@SuppressWarnings(unused)
privateContextcontext;
publicJavascriptInterface(Contextcontext){
this.context=context;
}
publicvoidback(Stringmole,intstatus,Stringplace){
reFreshBlance();
if(status==-1){//用户取消了
return;
}elseif(status==0){
Toast.makeText(PublicWebView.this,充值请求失败,请稍后重试...,Toast.LENGTH_SHORT).show();
return;
}elseif(status==1){
//充值请求成功
reFreshBlance();
//1.用户中心进来的有两个参数
//a.bet参数是返回购彩界面
//b.userCenter返回用户中心
}
}
}
//监听所有点击的链接,如果拦截到我们需要的,就跳转到相对应的页面。
{
@Override
(WebViewview,Stringurl){
System.out.println(----------------------shouldOverrideUrlLoading。。url:+url);
if(url!=null&&url.contains(/m/phoneRegiste.do)){
Intentintent=newIntent(PublicWebView.this,RegisterByPhone.class);
PublicWebView.this.startActivity(intent);
finish();
returntrue;
}
returnsuper.shouldOverrideUrlLoading(view,url);
}
@Override
publicvoidonPageFinished(WebViewview,Stringurl){
view.getSettings().setJavaScriptEnabled(true);
super.onPageFinished(view,url);
}
}
//覆盖Activity类的onKeyDown(intkeyCoder,KeyEventevent)方法
publicbooleanonKeyDown(intkeyCode,KeyEventevent){
if(keyCode==KeyEvent.KEYCODE_BACK&&webview.canGoBack()){
//webview.goBack();//返回前一个页面
finish();
returntrue;
}
returnsuper.onKeyDown(keyCode,event);
}
}
4. webview是什么
Webview含义:WebView也就是我们熟悉的“网络视图”,能加载并显示网页,可以将其视为一个浏览器。主要用于展示网络请求后的内容,就是将网络地址请求的内容展示在里面。
使用场景:比如你自己写个APP,想要访问网络(如网络页面),可以不使用手机自带的浏览器,只需APP内部展示网络页面,这时候就可以用webView。
(4)webview的使用方法扩展阅读:
WebView的作用:
1.1显示、渲染请求的Web页面;
1.2对展示的html文件进行布局;
1.3与JavaScript相互调用。
2.实现WebView的方法:
2.1直接在Activity中实例化所需要的WebView组件吗,如:WebView webView = new WebView(this);
2.2使用WebView的loadUrl方法,设置WebView初始要加载的页面:访问互联网使用:webView.loadUrl("http://www..com"); 访问本地文件使用:webView.loadUrl("本地地址"); 本地文件一般存放在:assets 文件夹中
2.3使用Activity的setContentView方法来展示网页视图
2.4需要在AndroidManifest.xml文件中添加需要用到的权限,否则会出现Web page not available的错误。添加方法:
<uses-permission android:name="android.permission.INTERNET" />
5. android webview怎么用
Android和iOS系统都提供了标准的浏览器控件,在android中是WebView,ios中为UIWebView。在iOS中你实例化一个UIWebView即可调用loadRequest来加载一个网页,但是在Android中你不仅需要创建一个WebView,还需要做一些其他的事情,建议初次使用WebView的读者按照以下步骤使用:
(1)在要实现WebView的XML中添加一个WebView,并按照自己的要求进行排版,如下:
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center">
6. 如何使用webview加载网页
//实例化WebView对象
webview
=
new
WebView(this);
//设置WebView属性,能够执行Javascript脚本
webview.getSettings().setJavaScriptEnabled(true);
//加载需要显示的网页
webview.loadUrl("
http://www.51cto.com/"
);
//设置Web视图
setContentView(webview);
7. 要使用webview如何操作
您好,webview中要打开的页面需要设置白名单,到用户后台,进入开发设置中,将网站域名加入到配置中。
8. 安卓如何使用WebView组件加载HTML代码
1)修改新建项目的resIayout目录下的布局文件main.xml,将默认添加的TextView组件删除,然后添加一个WebView组件
2)在MainActivity的onCreate()方法中,首先获取布局管理器中添加的Web View组件,然后创建一个字符串构建器,将要显示的HTML代码放置在该构建器中,最后应用IoadDataWithBaseURLO方法加载构建器中的HTML代码
android客户端常会调用到html页面,给webview页面适配android凌乱的设备带来很大的困难。
可以找到的方法是通过ZoomDensity.setDefaultZoom根据分辨率480宽度为基准缩放。
不过ZoomDensity.setDefaultZoom在2.0以下的平台是无法调用的,需要自己反射调用。
即使是ZoomDensity.setDefaultZoom设置了缩放,但还是会在很多设备无效。经过摸索还需做一些修改:
1,页面head添加
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
2,设置字体也按480基准缩放。
下面是代码:
Java代码
privatevoidsetZoom(WebSettingswebSettings){intscreenDensity=getResources().getDisplayMetrics().densityDpi;Stringzd="FAR";switch(screenDensity){caseDisplayMetrics.DENSITY_LOW:zd="CLOSE";break;caseDisplayMetrics.DENSITY_MEDIUM:zd="MEDIUM";break;}Class<?>zoomDensityClass=null;Enum<?>zoomDensity=null;try{if(zoomDensityClass==null){zoomDensityClass=Class.forName("android.webkit.WebSettings$ZoomDensity");}if(zoomDensity==null){zoomDensity=(Enum<?>)Enum.valueOf((Class)zoomDensityClass,zd);}Methodmethod=WebSettings.class.getDeclaredMethod("setDefaultZoom",newClass<?>[]{zoomDensityClass});if(method!=null){method.invoke(webSettings,zoomDensity);}method=WebSettings.class.getDeclaredMethod("setTextZoom",newClass<?>[]{int.class});if(method!=null){method.invoke(webSettings,100*getWindowManager().getDefaultDisplay().getWidth()/480);}}catch(Exceptione){Log.e(TAG,e.getMessage());return;}}
Android的webview加载本地html、本apk内html和远程URL
Android的webview加载本地html、本apk内html和远程URL
android客户端常会调用到html页面,给webview页面适配android凌乱的设备带来很大的困难。
可以找到的方法是通过ZoomDensity.setDefaultZoom根据分辨率480宽度为基准缩放。
不过ZoomDensity.setDefaultZoom在2.0以下的平台是无法调用的,需要自己反射调用。
即使是ZoomDensity.setDefaultZoom设置了缩放,但还是会在很多设备无效。经过摸索还需做一些修改:
1,页面head添加
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
2,设置字体也按480基准缩放。
下面是代码:
Java代码
privatevoidsetZoom(WebSettingswebSettings){intscreenDensity=getResources().getDisplayMetrics().densityDpi;Stringzd="FAR";switch(screenDensity){caseDisplayMetrics.DENSITY_LOW:zd="CLOSE";break;caseDisplayMetrics.DENSITY_MEDIUM:zd="MEDIUM";break;}Class<?>zoomDensityClass=null;Enum<?>zoomDensity=null;try{if(zoomDensityClass==null){zoomDensityClass=Class.forName("android.webkit.WebSettings$ZoomDensity");}if(zoomDensity==null){zoomDensity=(Enum<?>)Enum.valueOf((Class)zoomDensityClass,zd);}Methodmethod=WebSettings.class.getDeclaredMethod("setDefaultZoom",newClass<?>[]{zoomDensityClass});if(method!=null){method.invoke(webSettings,zoomDensity);}method=WebSettings.class.getDeclaredMethod("setTextZoom",newClass<?>[]{int.class});if(method!=null){method.invoke(webSettings,100*getWindowManager().getDefaultDisplay().getWidth()/480);}}catch(Exceptione){Log.e(TAG,e.getMessage());return;}}
9. android6.0 webview js怎么使用
WebView(网络视图)能加载显示网页,可以将其视为一个浏览器。它使用了WebKit渲染引擎加载显示网页,实现WebView有以下两种不同的方法:
第一种方法的步骤:
1.在要Activity中实例化WebView组件:WebView webView = new WebView(this);
2.调用WebView的loadUrl()方法,设置WevView要显示的网页:
互联网用:webView.loadUrl("http://www.google.com");
本地文件用:webView.loadUrl("file:///android_asset/XX.html"); 本地文件存放在:assets 文件中
3.调用Activity的setContentView( )方法来显示网页视图
4.用WebView点链接看了很多页以后为了让WebView支持回退功能,需要覆盖覆盖Activity类的onKeyDown()方法,如果不做任何处理,点击系统回退剪键,整个浏览器会调用finish()而结束自身,而不是回退到上一页面
5.需要在AndroidManifest.xml文件中添加权限,否则会出现Web page not available错误。
<uses-permission android:name="android.permission.INTERNET" />
第二种方法的步骤:
1、在布局文件中声明WebView
2、在Activity中实例化WebView
3、调用WebView的loadUrl( )方法,设置WevView要显示的网页
4、为了让WebView能够响应超链接功能,调用setWebViewClient( )方法,设置 WebView视图
5、用WebView点链接看了很多页以后为了让WebView支持回退功能,需要覆盖覆盖Activity类的onKeyDown()方法,如果不做任何处理,点击系统回退剪键,整个浏览器会调用finish()而结束自身,而不是回退到上一页面
6、需要在AndroidManifest.xml文件中添加权限,否则出现Web page not available错误。
<uses-permission android:name="android.permission.INTERNET"/>