• 关于

    webviewclient

    的搜索结果

问题

通过WebView的两个URL

LiuWH 2020-01-15 10:42:21 25 浏览量 回答数 2

回答

有时候我们用 WebView 去加载网页并进行登录后,需要在其他activity或service中使用WebView登录后 的cookies以避免再次登录,比如去下载该网页上的一些附件。这时我们可以在 WebViewClient 的 onPageFinished(WebView view, String url) 方法中使用 CookieManager 来获取加载完成之后网页中携带的 Cookie 值,代码如下:private class MyWebViewClient extends WebViewClient { public boolean shouldOverrideUrlLoading(WebView view, String url) { webview.loadUrl(url); return true; } public void onPageFinished(WebView view, String url) { CookieManager cookieManager = CookieManager.getInstance(); String Cookie = cookieManager.getCookie(url); super.onPageFinished(view, url); } }

爵霸 2019-12-02 01:56:27 0 浏览量 回答数 0

回答

webview布局的时候没弄好,或者你的activity已经设置成了不显示title。######mate属性有个是设置缩放的,需要那个参数.你加上就好了.做成响应式布局就行了.######推送的消息应该不是网页格式吧,当点击后才是网页效果######点击的就是一个网址,在微信中浏览器插件中打开######webview也是一个控件,在activity的布局xml文件中做好布局###### 呵呵,不知道是不是我没说清楚了,不过,还是谢谢大家,问题解决了,原来是我继承错了一个类导致的,加上下面的即可,我起先是继承了WebChomeClient而不是WebViewClient,所以一直实现不了我要的效果。  mBrowser.setWebViewClient(new WebViewClient(){  //网页链接用本浏览器访问       @Override    public boolean shouldOverrideUrlLoading(WebView view, String url) {     view.loadUrl(url);     return true;     }      });   ######微信公众平台API提供url功能

kun坤 2020-06-01 09:50:34 0 浏览量 回答数 0

阿里云试用中心,为您提供0门槛上云实践机会!

0元试用32+款产品,最高免费12个月!拨打95187-1,咨询专业上云建议!

回答

监听listview点击事件或者item内部每个设置一个onclikc时间。 通过webview打开页面 webView.setWebViewClient(new WebViewClient()); WebSettings webSettings = webView.getSettings(); webSettings.setJavaScriptEnabled(true); webView.loadUrl("file:///android_asset/你的页面.html");

爵霸 2019-12-02 02:50:00 0 浏览量 回答数 0

问题

单击WebView上的mp3链接时,使用带有下载按钮的android播放器

游客ufivfoddcd53c 2020-01-04 11:36:25 0 浏览量 回答数 1

回答

只要实现以下接口就可以让webView内的超链接在本应用内处理。 webview.setWebViewClient( new WebViewClient() { public boolean shouldOverrideUrlLoading( WebView view, String url ) { // WebView自己加载并让此方法返回true,表示已处理完成,不再向下传递 view.loadUrl( url ); return true; } @Override public void onPageFinished( WebView view, String url ) { super.onPageFinished( view, url ); // 当页面加载完成(无论成功或者失败)时,回调此方法 } } );

爵霸 2019-12-02 02:06:58 0 浏览量 回答数 0

回答

微信并没有对type=file做任何特殊处理。 但是在Android 4.4.1/4.4.2系统中,这的确没法使用。 其它版本中如果客户端如果需要对H5的 标签做支持,即在H5支持选择文件的功能,可以通过重写WebViewClient非public的openFileChooser方法来实现。可在4.4.1/4.4.2系统中,该回调方法被废弃,客户端无法捕获用户在H5页面上对标签的点击。 谷歌官方也未对此给出任何解释或可行的替代方案:参考链接 建议使用微信提供的js-sdk来做文件上传的相关功能

a123456678 2019-12-02 03:15:48 0 浏览量 回答数 0

回答

根据<spanstyle="font-family:'MicrosoftYaHei',Verdana,sans-serif,宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;">sinaweibo这个scheme获取Url后面的内容,重新load就好了。 我反复测试发现,总是先跳入到新浪微博的登录页面,然后一闪而过,又跳转到这个 <spanstyle="font-family:'MicrosoftYaHei',Verdana,sans-serif,宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;">sinaweibo://browser?url=http%3A%2F%2Fservice.weibo.com(省略号) 这个地址,导致页面打不开,这是什么情况?为什么会在新浪微博登录页面一闪而过? WebViewClient的shouldOverrideUrlLoading()中会接受web传来的url请求,有时候不会传来URL,传来启动APP的Uri,这时候要在这里面判断是否是url,是就webView.loadUrl(),不是就newIntent,丢出这个启动请求.当然也可以不丢出. 如果还不理解的话,可以在群里问我,安卓开发L-4群里的,看了你的留言来回复的 请问群号是多少? 引用来自“岚风暴”的评论 WebViewClient的shouldOverrideUrlLoading()中会接受web传来的url请求,有时候不会传来URL,传来启动APP的Uri,这时候要在这里面判断是否是url,是就webView.loadUrl(),不是就newIntent,丢出这个启动请求.当然也可以不丢出. 如果还不理解的话,可以在群里问我,安卓开发L-4群里的,看了你的留言来回复的 麻烦把你们的群号发下哦,谢谢了 你的解决了吗?

爱吃鱼的程序员 2020-06-09 14:00:55 0 浏览量 回答数 0

回答

仅供参考 在安卓webview下 html5 的 video 设置autoplay 属性 或在document ready中使用play方法 都不能使它自动播放 只能用webview的onPageFinished方法来解决此问题,代码如下: mPlayer.setWebViewClient(new WebViewClient() { // autoplay when finished loading via javascript injection public void onPageFinished(WebView view, String url) { mPlayer.loadUrl("javascript:(function() { var videos = document.getElementsByTagName('video'); for(var i=0;i<videos.length;i++){videos[i].play();}})()"); } }); 将上面的代码放到//here的地方即能解决问题。 public class PlayerActivity extends Activity { protected void onCreate(Bundle savedInstanceState) { //here } }

爵霸 2019-12-02 02:26:53 0 浏览量 回答数 0

回答

仅供参考 在安卓webview下 html5 的 video 设置autoplay 属性 或在document ready中使用play方法 都不能使它自动播放 只能用webview的onPageFinished方法来解决此问题,代码如下: mPlayer.setWebViewClient(new WebViewClient() { // autoplay when finished loading via javascript injection public void onPageFinished(WebView view, String url) { mPlayer.loadUrl("javascript:(function() { var videos = document.getElementsByTagName('video'); for(var i=0;i<videos.length;i++){videos[i].play();}})()"); } }); 将上面的代码放到//here的地方即能解决问题。 public class PlayerActivity extends Activity { protected void onCreate(Bundle savedInstanceState) { //here } }

小旋风柴进 2019-12-02 02:09:07 0 浏览量 回答数 0

回答

(1)对图片本身进行操作。尽量不要使用setImageBitmap、setImageResource、BitmapFactory.decodeResource来设置一张大图,因为这些方法在完成decode后, 最终都是通过java层的createBitmap来完成的,需要消耗更多内存. (2)图片进行缩放的比例,SDK中建议其值是2的指数值,值越大会导致图片不清晰。 (3)不用的图片记得调用图片的recycle()方法 25、HybridApp WebView和JS交互 Android与JS通过WebView互相调用方法,实际上是: Android去调用JS的代码 通过WebView的loadUrl(),使用该方法比较简洁,方便。但是效率比较低,获取返回值比较困难。 通过WebView的evaluateJavascript(),该方法效率高,但是4.4以上的版本才支持,4.4以下版本不支持。所以建议两者混合使用。 JS去调用Android的代码 通过WebView的addJavascriptInterface()进行对象映射 ,该方法使用简单,仅将Android对象和JS对象映射即可,但是存在比较大的漏洞。 漏洞产生原因是:当JS拿到Android这个对象后,就可以调用这个Android对象中所有的方法,包括系统类(java.lang.Runtime 类),从而进行任意代码执行。 解决方式: (1)Google 在Android 4.2 版本中规定对被调用的函数以 @JavascriptInterface进行注解从而避免漏洞攻击。 (2)在Android 4.2版本之前采用拦截prompt()进行漏洞修复。 通过 WebViewClient 的shouldOverrideUrlLoading ()方法回调拦截 url 。这种方式的优点:不存在方式1的漏洞;缺点:JS获取Android方法的返回值复杂。(ios主要用的是这个方式) (1)Android通过 WebViewClient 的回调方法shouldOverrideUrlLoading ()拦截 url (2)解析该 url 的协议 (3)如果检测到是预先约定好的协议,就调用相应方法 通过 WebChromeClient 的onJsAlert()、onJsConfirm()、onJsPrompt()方法回调拦截JS对话框alert()、confirm()、prompt() 消息 这种方式的优点:不存在方式1的漏洞;缺点:JS获取Android方法的返回值复杂。

剑曼红尘 2020-04-10 12:48:25 0 浏览量 回答数 0

问题

怎样使用webView打开另一个类

蛮大人123 2019-12-01 20:02:04 1048 浏览量 回答数 0

问题

webview 加载链接的问题?报错

爱吃鱼的程序员 2020-06-14 16:18:42 0 浏览量 回答数 0

回答

打开网页时不调用系统浏览器, 而是在本WebView中显示: mWebView.setWebViewClient(new WebViewClient(){ @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } }); 通过java代码调用javascript WebSettings webSettings = mWebView .getSettings(); webSettings.setJavaScriptEnabled(true); mWebView.addJavascriptInterface(new Object() { public void clickOnAndroid() { mHandler.post(new Runnable() { public void run() { webview.loadUrl("javascript:wave()"); } }); } }, "demo"); 按返回键时, 不退出程序而是返回上一浏览页面: public boolean onKeyDown(int keyCode, KeyEvent event) { if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) { mWebView.goBack(); return true; } return super.onKeyDown(keyCode, event); } 打开页面时, 自适应屏幕: WebSettings webSettings = mWebView .getSettings(); webSettings.setUseWideViewPort(true);//设置此属性,可任意比例缩放 webSettings.setLoadWithOverviewMode(true); 便页面支持缩放: WebSettings webSettings = mWebView .getSettings(); webSettings.setJavaScriptEnabled(true); webSettings.setBuiltInZoomControls(true); webSettings.setSupportZoom(true); 6.如果webView中需要用户手动输入用户名、密码或其他,则webview必须设置支持获取手势焦点。 webview.requestFocusFromTouch(); 7.WebView 加载界面主要调用三个方法:LoadUrl、LoadData、LoadDataWithBaseURL. 1、LoadUrl 直接加载网页、图片并显示.(本地或是网络上的网页、图片、gif) 2、LoadData 显示文字与图片内容 (模拟器1.5、1.6) 3、LoadDataWithBase 显示文字与图片内容(支持多个模拟器版本) 8.WebSettings 的常用方法介绍 setJavaScriptEnabled(true); //支持js setPluginsEnabled(true); //支持插件 setUseWideViewPort(false); //将图片调整到适合webview的大小 setSupportZoom(true); //支持缩放 setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN); //支持内容重新布局 supportMultipleWindows(); //多窗口 setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); //关闭webview中缓存 setAllowFileAccess(true); //设置可以访问文件 setNeedInitialFocus(true); //当webview调用requestFocus时为webview设置节点 webview webSettings.setBuiltInZoomControls(true); //设置支持缩放 setJavaScriptCanOpenWindowsAutomatically(true); //支持通过JS打开新窗口 setLoadWithOverviewMode(true); // 缩放至屏幕的大小 setLoadsImagesAutomatically(true); //支持自动加载图片 9.WebViewClient 的方法全解 doUpdateVisitedHistory(WebView view, String url, boolean isReload) //(更新历史记录) onFormResubmission(WebView view, Message dontResend, Message resend) //(应用程序重新请求网页数据) onLoadResource(WebView view, String url) // 在加载页面资源时会调用,每一个资源(比如图片)的加载都会调用一次。 onPageStarted(WebView view, String url, Bitmap favicon) //这个事件就是开始载入页面调用的,通常我们可以在这设定一个loading的页面,告诉用户程序在等待网络响应。 onPageFinished(WebView view, String url) //在页面加载结束时调用。同样道理,我们知道一个页面载入完成,于是我们可以关闭loading 条,切换程序动作。 onReceivedError(WebView view, int errorCode, String description, String failingUrl)// (报告错误信息) onReceivedHttpAuthRequest(WebView view, HttpAuthHandler handler, String host,String realm)//(获取返回信息授权请求) onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) //重写此方法可以让webview处理https请求。 onScaleChanged(WebView view, float oldScale, float newScale) // (WebView发生改变时调用) onUnhandledKeyEvent(WebView view, KeyEvent event) //(Key事件未被加载时调用) shouldOverrideKeyEvent(WebView view, KeyEvent event)//重写此方法才能够处理在浏览器中的按键事件。 shouldOverrideUrlLoading(WebView view, String url) //在点击请求的是链接是才会调用,重写此方法返回true表明点击网页里面的链接还是在当前的webview里跳转,不跳到浏览器那边。这个函数我们可以做很多操作,比如我们读取到某些特殊的URL,于是就可以不打开地址,取消这个操作,进行预先定义的其他操作,这对一个程序是非常必要的。

爵霸 2019-12-02 02:06:50 0 浏览量 回答数 0

问题

各位大神,帮忙分析以下代码在安卓手机上运行时报错的原因行吗?

爵霸 2019-12-01 20:04:00 1112 浏览量 回答数 1

问题

WebView场景IO直连的几种方法有哪些?

猫饭先生 2019-12-01 21:50:14 785 浏览量 回答数 0

回答

问题是想点击Anchor链接后重新加载页面。Assets文件夹中的chapters.xml <html> <body> <p><a href="#C4">See also Chapter 4</a></p> <p><h2><a name='C1'>Chapter 1<a></h2><p>This chapter explains ba bla bla</p> <h2>Chapter 2</h2><p>This chapter explains ba bla bla</p> <h2>Chapter 3</h2><p>This chapter explains ba bla bla</p> <h2><a name='C4'>Chapter 4</a></h2><p>This chapter explains ba bla bla</p> <h2>Chapter 5</h2><p>This chapter explains ba bla bla</p> <h2>Chapter 6</h2><p>This chapter explains ba bla bla</p> <h2>Chapter 7</h2><p>This chapter explains ba bla bla</p> <a href="#C1">See also Chapter 1</a> </body> </html> 方法一:JAVA public class MainActivity extends Activity { WebView myWebView; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); myWebView = new WebView(this); myWebView.getSettings().setJavaScriptEnabled(true); myWebView.loadUrl("file:///android_asset/chapters.html"); setContentView(myWebView); final GestureDetector gestureDetector = new GestureDetector( new MyGestureDetector()); View.OnTouchListener gestureListener = new View.OnTouchListener() { public boolean onTouch(View v, MotionEvent event) { return gestureDetector.onTouchEvent(event); } }; myWebView.setOnTouchListener(gestureListener); } class MyGestureDetector extends SimpleOnGestureListener { @Override public boolean onSingleTapConfirmed(MotionEvent e) { myWebView.reload(); Log.i("", "Reload"); return super.onSingleTapConfirmed(e); } } } 方法二:JAVA是用下面代码代替onTouchListener public class MainActivity extends Activity { WebView myWebView; public static boolean flag = false; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); myWebView = new WebView(this); myWebView.getSettings().setJavaScriptEnabled(true); myWebView.loadUrl("file:///android_asset/chapters.html"); setContentView(myWebView); myWebView.setWebViewClient(new WebViewClient() { public void onPageFinished(WebView view, String url) { if (url.contains("#") && flag == false) { myWebView.loadUrl(url); flag = true; } else { flag = false; } } }); } }

小旋风柴进 2019-12-02 02:05:57 0 浏览量 回答数 0

问题

android webview加载ssl页面很慢:报错

kun坤 2020-06-14 09:46:00 0 浏览量 回答数 0
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 企业信息查询 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 2020阿里巴巴研发效能峰会 企业建站模板 云效成长地图 高端建站