在我的应用程序中,用户将通过单击菜单打开多个选项卡。 每个标签都是动态创建的,包含 webbrowser control 以加载网址。
每个网址指向同一台服务器,部分网址没有访问权限,因此收到Resource not have access
错误。
现在,问题是,示例 - 如果用户直接点击加载了webbrowser URL的Menu3
和相关标签,然后按照下一步,URL包含其他弹出链接,那么它可以工作并能够弹出URL。
现在,用户点击Menu5
没有权限的Resource not have access
,收到此错误). Its fine.
NOw, again URL reach to
(拒绝来自服务器and try to open sub link to popup dialog then it gives
菜单3 WebBrowser Control
403禁止错误拒绝访问“。它最初工作,但后来它只是给出了这个错误。
看起来,我需要清除dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.2.0'
compile 'com.google.android.gms:play-services:7.3.0'
compile 'com.google.api-client:google-api-client:1.20.0'
compile 'com.google.api-client:google-api-client-android:1.20.0'
compile 'com.google.api-client:google-api-client-gson:1.20.0'
compile 'com.google.apis:google-api-services-calendar:v3-rev125-1.20.0'
compile 'com.evernote:android-sdk:2.0.0-RC2'
}
缓存或强制启动新会话。
任何人都可以指导我如何强制 WebBrowser 启动新会话或删除早期缓存吗?
答案 0 :(得分:4)
WebBrowser控件的缓存与Internet Explorer相同。您有多种选择:
1)完全清除缓存(也将清除Internet Explorer!):
2)在服务器响应中使用一些标签:
<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
3)使用随机查询字符串强制刷新:
WebBrowser1.Navigate('http://www.example.com/?refresh=' & Guid.NewGuid().ToString())
4)强制刷新页面(这将加载页面2次!):
WebBrowser1.Navigate('http://www.example.com/')
WebBrowser1.Refresh(WebBrowserRefreshOption.Completely)
答案 1 :(得分:4)
有一个更好的选择。它使用WinINet.DLL并调用SetInternetOptions
[DllImport("wininet.dll", SetLastError = true)]
private static extern bool InternetSetOption(IntPtr hInternet, int dwOption, IntPtr lpBuffer, int lpdwBufferLength);
private const int INTERNET_OPTION_END_BROWSER_SESSION = 42;
InternetSetOption(IntPtr.Zero, INTERNET_OPTION_END_BROWSER_SESSION, IntPtr.Zero, 0);
这将结束浏览器的会话缓存。调用此方法后,webbrowser控件将忘记内存中的任何会话