2014-10-20 3 views
0

웹 사이트의 클릭 이벤트를 호출하거나 POST와 델파이를 통해 웹 사이트에 로그인하는 방법은 무엇입니까? 예를 들어, 나는 PS4/XBox1 게임 Madden 15에 대한 친구와 함께 프랜차이즈 리그에 있습니다. 매장의 동반 앱은 실제로 웹 사이트 링크 일 뿐이며 솔직히 웹 사이트는 모바일에서 이동하기가 어렵고 어렵습니다. Delphi를 모바일 앱 형태로 사용하여 물론 내 필요에 맞게 사이트를 재현하고 싶습니다. 내 첫 번째 장애물은 로그인하는 것입니다. 제 계획은 HTML을 평가하고 비주얼을 나열하는 데 필요한대로 데이터를 가져올 수있는 HMTL에 로그인 /로드하는 앱의 배경에 웹 브라우저가있는 것입니다. 사이트에델파이 앱에서 웹 사이트 로그인 시뮬레이션하기 FMX

링크는 내가이 웹 브라우저를 통해 더 친화적 인 GUI를 표시 걸려 있기 때문에 here

을 시뮬레이션 걸려 라, 나는이 WebBrowser1.EvaluateJavaScript(ChangeElementByIDforPassandUsername_String); 와 브라우저의 HTML을 수정할 수 있다고 생각 어디 전달 된 문자열이 TEdits에서 가져온 것입니다.

이 여기에 다음 http://blogs.embarcadero.com/nikolay/2014/04/17/exampleofusingjavascriptforgooglemapsinthedelphixe6/

그러나 내가 로그인 버튼의 사이트에서 시뮬레이션 buttonclick를 호출 할 수있는 방법을?

답변

1

모바일 브라우저를 가로채는 것을 잊어 버립니다. 필요한 경우 Indy의 TIdHTTP 구성 요소를 사용하여 HTTP POST 요청을 서버에 보냅니다. 일반 웹 브라우저를 사용하여 실제 HTML을보고 해당 필드를 앱에 코딩하십시오. 또는 TIdHTTP을 사용하여 HTML을 다운로드하고 코드로 분석하십시오. 하지만 어느 쪽이든, 당신은 자신의 UI를 사용할 수 있습니다. 예를 들어

는 :

var 
    PostData: TStringList; 
    Resp: String; 
begin 
    PostData := TStringList.Create; 
    try 
    PostData.Add('email=...'); 
    PostData.Add('password=...'); 
    PostData.Add('_eventId=submit'); 
    PostData.Add('facebookAuth='); 

    // make sure a TIdSSLIOHandlerSocketOpenSSL is assigned 
    // to the TIdHTTP.IOHandler property beforehand 

    Resp := IdHTTP1.Post(URL{'https://signin.ea.com/p/web/login?execution=...'}, PostData); 
    finally 
    PostData.Free; 
    end; 
end; 
+0

나는 처음에는 인디 포스트를 사용하여 시도, 심지어 시뮬레이터/모바일에 대한 적절한 SSL 요구 사항을 포함하지만, 난 일하러 couldnt한다. 난 그냥 '크롬'에 대한 '우편 배달부'응용 프로그램에서 게시물 요청을 보내려고하지 않았지만, 거기에 게시물 요청을 통해 작동하도록 할 수 없습니다. 위에서 보았던 것과 같은 매개 변수를 사용합니다 ^^하지만 자격 증명으로 나는 일을합니다. – StacksOnStacks

+0

Indy의 'TIdHTTP' 및'TIdSSLIOHandlerSocketOpenSSL' 구성 요소가 모바일에서 잘 작동한다는 사실을 알고 있으므로 내 생각에 사이트에서 예상 한 올바른 필드 데이터를 단순히 'POST'하지 않았을 것입니다. 패킷 스니퍼를 사용하여 일반 웹 브라우저에서 게시하는 방법을 확인한 다음 동일한 데이터를 코드에 복제하십시오. –

+0

동의합니다. 좋아, 나는 그 제안을 시도 할 것이다. 감사 – StacksOnStacks