C# 如何在专用浏览器xamarin表单中打开URL

C# 如何在专用浏览器xamarin表单中打开URL,c#,android,ios,xamarin.forms,C#,Android,Ios,Xamarin.forms,我想在手机/平板电脑浏览器中打开一个url,需要私人浏览,因为某些url需要sigin。我不想把饼干留下。有什么办法吗 现在,我正在使用以下代码打开浏览器: Device.OpenUri(新Uri(“”) 您可以创建一个活动,在其中只显示web浏览器。 当该活动破坏时,即 void onDestory(){ // remove cookie CookieSyncManager.createInstance(this); CookieManager cookieManage

我想在手机/平板电脑浏览器中打开一个url,需要私人浏览,因为某些url需要sigin。我不想把饼干留下。有什么办法吗

现在,我正在使用以下代码打开浏览器:

Device.OpenUri(新Uri(“”)


您可以创建一个活动,在其中只显示web浏览器。 当该活动破坏时,即

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:

安卓:

/// <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(); }
    }
}
//
///删除Android上CookieManager中存储的所有cookie。
/// 
public void DeleteAllCookies(){
如果(_cookieManager.hascokies){
如果(Build.VERSION.SdkInt>=BuildVersionCodes.Lollipop){
_cookieManager.RemoveAllCookies(空);
}else{u cookieManager.RemoveAllCookie();}
}
}

不太清楚Windows Phone。

我认为没有办法在私人模式(iOS)或匿名模式(Android)下启动浏览器。因此,解决方法是在使用
WebView
后,使用以下答案之一清理cookies。以不同方式处理棒棒糖和更高版本的原因是什么?@Ethan Android有许多API在更高版本中引入或在更高版本中不推荐,因此需要您运行不同的方法取决于版本
CookieManager.RemoveAllCookies()就是这样一种方法。如果您转到,您将看到一条消息,说明它在API 21中已被弃用,并建议传入回调的版本。您还可以在它的正下方看到,直到API 21才引入该方法的回调版本
/// <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(); }
    }
}