zoukankan      html  css  js  c++  java
  • Android-WebView路由登录192.168.1.1

    由于项目需求制做路由器的登录,有的路由可以直接打开网页登录,有的是打开的登录窗

    我们的路由是打开的登录窗口,我在自己写的时候用WebView打不开登录窗

    在网上搜索的答案是
    WebView.setHttpAuthUsernamePassword(host, realm, username, password)
    WebView增加WebChromeClient重写onJsAlert
    发现以上办法都不能解决问题
     
    用浏览器打开的时候会弹出登录框,当我用Android WebView登录的时候提示登录失败
    打不开登录框,一开始我以为是js生成的弹出框
    试验给WebView setWebChromeClient 
    重写 WebChromeClient 中的
    public boolean onJsAlert(WebView view, String url, String message, JsResult result) 
    public boolean onJsConfirm(WebView view, String url, String message, JsResult result)
    public boolean onJsPrompt(WebView view, String url, String message, String defaultValue, JsPromptResult result)
    public boolean onJsBeforeUnload(WebView view, String url, String message, JsResult result)
    public boolean onJsTimeout()
    发现以上方法没有一个执行到了
    然后我在对比火狐,IE,Google Chrome感觉是浏览器自己做的
    浏览器打开的时候会提示输入用户名和密码
     
    发现WebViewClient中有一个方法 onReceivedHttpAuthRequest
    然后查看源码
    public void onReceivedHttpAuthRequest(WebView view, HttpAuthHandler handler, String host, String realm) { 
            handler.cancel();
    }
    发现是直接调用的 handler.cancel();
    给WebView增加WebViewClient 重写 onReceivedHttpAuthRequest 将此方法置空
    发现登录的时候会停止在一个空白页面,等待处理,并没有像开始直接打开的时候提示登录失败
     
    然后查看onReceivedHttpAuthRequest中的参数有一个HttpAuthHandler 
    源码默认是调用的cancel() 发现还有一个方法 proceed(String username, String password)
     
    然后在重写 onReceivedHttpAuthRequest时
    public void onReceivedHttpAuthRequest(WebView view,  HttpAuthHandler handler, String host, String realm) { 
            handler.proceed("admin", "admin");
    } // PS: admin 是我路由器默认的帐号和密码

    然后就登录进去了我的路由器,问题到这里已经解决

    onReceivedHttpAuthRequest这个方法也是在主线程中的,可以在这里制做自己的登录窗口

  • 相关阅读:
    归档拷贝LogMiner 和 archived redo log,分析归档日志
    宋体测试液晶屏测试小程序
    宋体方法Unity3d通过苹果和google两种方法加入广告
    代码确认小米官方在线预定——对代码实现的分析
    分区启动Grub2配置详解
    临时表判断sqlite 判断表 或 临时表 是否存在
    解释升级JDeveloper&ADF的版本
    引用字符shell中的引用java教程
    枚举生成MVC3: Bind Enum To DropDownList ?java教程
    能力学习为什么你应聘不上或试用期被开?
  • 原文地址:https://www.cnblogs.com/smile365/p/4130983.html
Copyright © 2011-2022 走看看