首先看报错
AgentWebConfig.debug();
浏览器打开 edge://inspect/#devices edge chrome 改协议部分
得到报错信息如下
Failed to load resource: the server responded with a status of 403 ()
解决办法 原来代码
mAgentWeb = AgentWeb.with(this)
.setAgentWebParent(findViewById(R.id.web_parent_layout), new LinearLayout.LayoutParams(-1, -1))
.closeIndicator()// 使用默认进度条
.setWebChromeClient(mWebChromeClient)
.setWebViewClient(mWebViewClient)
.setMainFrameErrorView(R.layout.agentweb_error_page, -1)
.setSecurityType(AgentWeb.SecurityType.STRICT_CHECK)
.setOpenOtherPageWays(DefaultWebClient.OpenOtherPageWays.ASK)//打开其他应用时,弹窗咨询用户是否前往其他应用
.addJavascriptInterface("android", onJsInterface)
.interceptUnkownUrl() //拦截找不到相关页面的Scheme
.createAgentWeb()
.ready()
.go(getUrl());
改成
AgentWeb.PreAgentWeb preAgentWeb = AgentWeb.with(this)
.setAgentWebParent(findViewById(R.id.web_parent_layout), new LinearLayout.LayoutParams(-1, -1))
.closeIndicator()// 使用默认进度条
.setWebChromeClient(mWebChromeClient)
.setWebViewClient(mWebViewClient)
.setMainFrameErrorView(R.layout.agentweb_error_page, -1)
.setSecurityType(AgentWeb.SecurityType.STRICT_CHECK)
.setOpenOtherPageWays(DefaultWebClient.OpenOtherPageWays.ASK)//打开其他应用时,弹窗咨询用户是否前往其他应用
.addJavascriptInterface("android", onJsInterface)
.interceptUnkownUrl() //拦截找不到相关页面的Scheme
.createAgentWeb();
//AgentWeb框架默认加了USERAGENT_UC 这个东西 有些图片会被服务器拦截 导致无法加载
preAgentWeb.get().getAgentWebSettings().getWebSettings().setUserAgentString(preAgentWeb.get().getAgentWebSettings().getWebSettings()
.getUserAgentString()
.replace(USERAGENT_UC, ""));
mAgentWeb = preAgentWeb.go(getUrl());
在go之前修改不需要ready了因为preAgentWeb.get()的时候里面做了
为什么需要在go之前修改?
因为之后修改的话所有的js交互方法都不执行了 为什么我也不知道