2017-03-17 6 views
3

에서 웹보기에 쿠키를 넣어 나는 내 자 마린 프로젝트에 다음과 같은 계획이 있습니다는 자 마린

  • 사용자는 MainPage에 자신의 사용자 이름과 암호를 입력합니다.
  • 데이터가 올바른 경우 (API가있는 경우) WebView로 이동하고 이 페이지에서 사용자를 자동으로 로그인하십시오.

기존 API (공개되지 않음)는 System.Net.CookieCollection을 제공합니다.

쿠키와 함께 POST 요청을 사용하여 어떻게 생각하나요?

[XamlCompilation(XamlCompilationOptions.Compile)] 
public partial class WebPage : ContentPage 
{ 
    public WebPage(string url, CookieCollection cookies) 
    { 
     InitializeComponent(); 
     BindingContext = new MainPageViewModel(); 
     MyWebView.Source = "https://" + url; 

    } 
} 

종류에 관해서는, 당신은 Android 및 iOS 모두에서 WebView에 대한 사용자 정의 렌더러를 만들어야합니다 localhorst27

답변

3

: 여기 내 기본입니다. 그렇게하면 Android WebView 및 iOS UIWebView에 쿠키를 삽입 할 수 있습니다. 당신이 그들에 익숙하지 않은 경우, 여기에서 시작하십시오 : 나는 또한 만들기 위해 여기에 코드를 게시합니다 Setting Cookies in a WebView

: 당신이 렌더러의 작업, 자 마린 포럼에 Christine Blanda에 의해이 게시물을 수행하는 방법에 익숙 Introduction to Custom Renderers

원래 게시물이 다운 된 경우에 대비하여 보존됩니다.

안드로이드는

var cookieManager = CookieManager.Instance; 
cookieManager.SetAcceptCookie(true); 
cookieManager.RemoveAllCookie(); 
var cookies = UserInfo.CookieContainer.GetCookies(new System.Uri(AppInfo.URL_BASE)); 
for (var i = 0; i < cookies.Count; i++) 
{ 
    string cookieValue = cookies[i].Value; 
    string cookieDomain = cookies[i].Domain; 
    string cookieName = cookies[i].Name; 
    cookieManager.SetCookie(cookieDomain, cookieName + "=" + cookieValue); 
} 

아이폰 OS 인스턴스라는 이름의 속성이 없습니다

// Set cookies here 
var cookieUrl = new Uri(AppInfo.URL_BASE); 
var cookieJar = NSHttpCookieStorage.SharedStorage; 
cookieJar.AcceptPolicy = NSHttpCookieAcceptPolicy.Always; 
foreach (var aCookie in cookieJar.Cookies) 
{ 
    cookieJar.DeleteCookie(aCookie); 
} 

var jCookies = UserInfo.CookieContainer.GetCookies(cookieUrl); 
IList<NSHttpCookie> eCookies = 
        (from object jCookie in jCookies 
        where jCookie != null 
        select (Cookie) jCookie 
        into netCookie select new NSHttpCookie(netCookie)).ToList(); 
cookieJar.SetCookies(eCookies.ToArray(), cookieUrl, cookieUrl); 
+0

CookieManager에를 OnElementChanged OnElementChanged. 어떻게 작동하는지 설명해 주시겠습니까? 또한, 제 컴파일러는 AppInfo.URL_BASE를 처리 할 수 ​​없습니다. – localhorst27