2015-12-21 48 views
2

我想在移动/平板电脑浏览器中打开一个URL,需要隐私浏览,因为一些url需要sigin。我不想把cookies留在后面。有什么办法可以做到吗?如何在私人浏览器中打开URL xamarin表格

现在,我使用下面的代码来打开浏览器:

Device.OpenUri(新的URI( “https://www.google.co.in”));

+0

我不认为有一种方法可以在私人模式(iOS)或隐身模式(Android)下启动浏览器。因此,解决方法是在使用“WebView”后,使用以下答案之一来清理Cookie。 –

回答

0

您创建一个活动,您只需显示Web浏览器。 当这个活动destory即

void onDestory(){ 
    // remove cookie 
    CookieSyncManager.createInstance(this); 
    CookieManager cookieManager = CookieManager.getInstance(); 
    cookieManager.removeAllCookies(callback); 
} 

删除所有cookie

0

您将要创建一个接口(例如: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。

+0

处理Lollipop和更高版本的原因是什么? – ethane

+0

@Enghan Android有很多API在更高版本中引入,或者在更高版本中被弃用,因此它需要您根据版本运行不同的方法。 'CookieManager.RemoveAllCookies()'就是这样一种方法。如果您前往[该方法的Android SDK文档](https://developer.android.com/reference/android/webkit/CookieManager.html#removeAllCookie()),您将看到API 21中不推荐使用的消息并建议传入回调的版本。您还可以在其下方看到该方法的回调版本直到API 21才被引入 – hvaughan3

相关问题