我在windows phone应用程序中使用了WebBrowser控件。使用webbrowser控件我正在登录我的应用程序。在注销时,我只需将用户重定向到登录页面,然后尝试清除web浏览器控件的缓存和cookie。
mybrowser.ClearCookiesAsync();
mybrowser.ClearInternetCacheAsync();
而不是显示登录屏幕,它获取以前的凭据并登录到应用程序中。任何人都可以帮我清除webbrowser conteol的cookie和缓存。 完整代码:
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
base.OnNavigatedTo(e);
App.AccessToken = "";
myBrowser.Navigate(new Uri(login URL));
}
void Navigating(object sender, NavigatingEventArgs e)
{
if (Login complete)
{
clearCahe();
}
}
public async void clearCahe()
{
await myBrowser.ClearCookiesAsync();
await mybrowser.ClearInternetCacheAsync();
}
答案 0 :(得分:0)
async functions
难以使用。如果你把断点放在
await myBrowser.ClearCookiesAsync(); // put a break point here then step-in (F11 on the keyboard)
你会看到它实际上并没有等待,并会继续它的快乐方式。
要解决这个问题,你必须做这样的事情
using System.Threading.Task;
public async Task<bool> clearCahe()
{
await myBrowser.ClearCookiesAsync();
await mybrowser.ClearInternetCacheAsync();
return true;
}
和一个同步的调用函数
喜欢这样
private async void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e)
{
await clearCache();
// then navigate the page
}