0

webview를 추가하고 Gmail 로그인 페이지로 리디렉션 한 앱을 만들었습니다.로그인 Windows 용 Gmail의 사용자 이름과 암호 10 나무 딸기 파이에 iot

GmailWebView.Navigate("https://accounts.google.com/ServiceLogin?service=mail&passive=true&rm=false&continue=https://mail.google.com/mail/&ss=1&scc=1&ltmpl=default&ltmplcache=2&emr=1&osid=1#identifier") 

이제 사용자 ID와 비밀번호를 추가하고 로그인을 클릭하고 싶지만 할 수 없습니다. System.Windows.Forms.WebBrowser를 추가 할 수 없으므로 사용할 수 있습니다. 우리는 이것을 완료하기 위해 win10에 어떤 것을 가지고 있습니까?

+0

Google을 사용하여 타사로 인증하거나 문자 그대로 Gmail에 로그인 하시겠습니까? – gilliduck

+0

나는 webview에서 Gmail에 로그인하려고하는데 코드를 통해 사용자 ID와 비밀번호를 전달하고 첫 번째 이메일을 선택하여 열 수 있습니다. – Farhan

+0

거기에 우리가 웹 사이트의 텍스트 상자에 데이터를 입력하는 win10 iot에서 사용할 수있는 모든 방법이 있으며 제출 또는 로그인 할 때 리디렉션됩니다. – Farhan

답변

1

먼저 귀하의 웹보기에서 NavigationCompleted에 당신이 당신의 URL로 이동하여 탐색이 NavigationCompleted을 완료 raised.and 당신이 당신의 웹보기를 설정 제어 할 수 있습니다 후

<WebView x:Name="webView" NavigationCompleted="webView_NavigationCompleted"></WebView> 

아래처럼 가입.

await webView.InvokeScriptAsync("eval", new[] { 
     "var usernameText=document.getElementById(\"UserName\");"+ 
     "var passwordText=document.getElementById(\"Password\");"+ 
     "var button=document.getElementById(\"SubmitButton\");"+ 
     "button.attachEvent('onclick', MyButtonClicked);"+ 
     "function MyButtonClicked(){" + 
      " //click Function"+ 
     "}" 
    }); 
+0

오류 아래 'System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (작업 일) 에서 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (작업 일) 에서 System.Runtime.CompilerServices.TaskAwaiter''1.GetResult에서 점점() at AllinOnePi.MainPage. d__36.MoveNext()' – Farhan

+0

친애하는 @Farhan InvokeScriptAsync 메서드를 사용하여 WebView 내용에 스크립트를 호출하거나 삽입하여 WebView의 내용과 상호 작용할 수 있으며, ScriptNotify 이벤트 WebView 컨텐츠에서 정보를 다시 얻으려면. WebView 콘텐츠에서 JavaScript를 호출하려면 InvokeScriptAsync 메서드를 사용하십시오. 호출 된 스크립트는 문자열 값만 리턴 할 수 있습니다. 자세한 내용은이 [link] (https://docs.microsoft.com/en-us/uwp/api/windows.ui.xaml.controls.webview)를 참조하십시오. –

+0

아래 코드를 사용해 보았습니다. 예외 위 초기화 된 uri 정의 uri = 새 Uri ("https://www.google.co.in/?gfe_rd=cr&dcr=0&ei=XMc7Wo2RE9KnvwSD2LeQDQ&gws_rd=ssl"); 'private 비동기 무효 webview_NavigationCompleted (WebView sender, WebViewNavigationCompletedEventArgs args) {try {string functionString = "document.getElementById ('lst-ib'). 값 = 'abc';" 기다리고 있습니다. webview.InvokeScriptAsync ("eval", 새 문자열 [] {functionString}); } catch (예외 ex) {LogTextbox.Text = ex.Message; }}' – Farhan