我想在移动/平板电脑浏览器中打开一个URL,需要隐私浏览,因为一些url需要sigin。我不想把cookies留在后面。有什么办法可以做到吗?如何在私人浏览器中打开URL xamarin表格
现在,我使用下面的代码来打开浏览器:
Device.OpenUri(新的URI( “https://www.google.co.in”));
我想在移动/平板电脑浏览器中打开一个URL,需要隐私浏览,因为一些url需要sigin。我不想把cookies留在后面。有什么办法可以做到吗?如何在私人浏览器中打开URL xamarin表格
现在,我使用下面的代码来打开浏览器:
Device.OpenUri(新的URI( “https://www.google.co.in”));
您创建一个活动,您只需显示Web浏览器。 当这个活动destory即
void onDestory(){
// remove cookie
CookieSyncManager.createInstance(this);
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.removeAllCookies(callback);
}
删除所有cookie
您将要创建一个接口(例如:IWebHelper
)。在IWebHelper
添加下面的一个方法:
public void DeleteAllCookies();
将在Android和iOS,创建WebHelper
并实现DeleteAllCookies()
方法,像这样:
的iOS:
public void DeleteAllCookies() { foreach(NSHttpCookie cookie in _storage.Cookies) { _storage.DeleteCookie(cookie); } }
安卓
/// <summary>
/// Deletes all cookies stored in the CookieManager on Android.
/// </summary>
public void DeleteAllCookies() {
if(_cookieManager.HasCookies) {
if (Build.VERSION.SdkInt >= BuildVersionCodes.Lollipop) {
_cookieManager.RemoveAllCookies(null);
} else { _cookieManager.RemoveAllCookie(); }
}
}
不确定Windows Phone。
处理Lollipop和更高版本的原因是什么? – ethane
@Enghan Android有很多API在更高版本中引入,或者在更高版本中被弃用,因此它需要您根据版本运行不同的方法。 'CookieManager.RemoveAllCookies()'就是这样一种方法。如果您前往[该方法的Android SDK文档](https://developer.android.com/reference/android/webkit/CookieManager.html#removeAllCookie()),您将看到API 21中不推荐使用的消息并建议传入回调的版本。您还可以在其下方看到该方法的回调版本直到API 21才被引入 – hvaughan3
我不认为有一种方法可以在私人模式(iOS)或隐身模式(Android)下启动浏览器。因此,解决方法是在使用“WebView”后,使用以下答案之一来清理Cookie。 –