2017-06-21 3 views
0

私はC#を使用してUWPアプリケーションを作成しています。このアプリはウェブサイトから情報を取得してユーザーに提示することになっています。私はサイトのDOMを通過し、サイトのHTMLをダウンロードすることができました。しかし、情報の一部は隠されており、ウェブサイト上で特定のボタンや選択が行われた場合にのみ表示されます。プログラムでサイトに入り、選択を行い、新しいHTMLをダウンロードできる方法はありますか?プログラムで電話のアプリからウェブサイトのボタンを押す

2番目の質問:fbページにリンクされたfb liveChat関数が必要です。 facebook liveChatをこのアプリにリンクさせるにはどうすればいいですか?私はこの仕事をどうやって作るのかについて私の頭の中には考えていません。助けていただきありがとうございます。ここで

+1

あなただけのバックエンドに直接呼び出すことはできませんか?この解決策はかなり難しいことがあります。 – Stefan

+1

別の考え方 - 私が助けていないことは分かっていますが、別の質問として2番目の質問を投稿する方が良いでしょう。その質問では、自分で試したことの関連するコード部分を投稿してください。 – Stefan

+0

@Stefanさんの返信をありがとう、私はそれだけでやります。私は本当に方法を試していない、私は周りを検索したが、私は何を探しているのか分からない原因を見つけることができなかった。 – Zee

答えて

2

は、検索ボックスにテキストを入力するための一例であり、

WebView webView = new WebView(); 
  • 使用使用にWebViewのためのInvokeScriptAsync方法すべての作業を行うために使用WebViewビング

    1. を検索ボタンをクリックしますJSコード

      webView.InvokeScriptAsync("eval", new string[] {}); 
      
    2. public LoadURI() 
      { 
          webView.Navigate(new Uri("https://www.bing.com/")); 
          webView.NavigationCompleted += webView_NavigationCompletedAsync; 
      } 
      
      string siteHtML = null; 
      
      private async void webView_NavigationCompletedAsync(WebView sender, WebViewNavigationCompletedEventArgs args) 
      { 
          siteHtML = await webView.InvokeScriptAsync("eval", new string[] { "document.documentElement.outerHTML;" }); 
      } 
      
    3. はコードの下に使用して検索ボックスにテキストを入力したコードの下に使用してHTMLサイトのを取得

      private async void EnterTextAsync(string enterText) 
      { 
          var functionString = string.Format(@"document.getElementsByClassName('b_searchbox')[0].innerText = '{0}';", enterText); 
          await webView.InvokeScriptAsync("eval", new string[] { functionString }); 
      } 
      
    4. シミュレートコードの下に使用してをクリックし

      private async void SimulateClickAsync() 
      { 
          var functionString = string.Format(@"ddocument.getElementsByClassName('b_searchboxSubmit')[0].click();"); 
          await webView.InvokeScriptAsync("eval", new string[] { functionString }); 
      } 
      
    5. のStackOverflowにログインするためのサンプルアプリここステップ3

    をされて使用して新しいサイトのHTMLを取得します。StackOverFlow-LogIn

  • +0

    ありがとう@ビジェイ。これは私が望むように見える。 Lemmeそれを試してみてください。 – Zee

    +0

    これはコードの出力です:_ 'System.Exception'型の例外はmscorlib.ni.dllで発生しましたが、ユーザーコードでは処理されませんでした 追加情報:HRESULTからの例外:0x80020101_。どちらのメソッドも、その例外でクラッシュします。 – Zee

    +0

    @Zee私は自分のコンピュータにインターネットの問題があるので、私はそれをテストできません。 WebViewをXAML要素として使用して、 'webView.Navigate'が機能するかどうかを確認してください。それが動作すれば 'Button'Clickイベントを使って' webView.InvokeScriptAsync( "eval"、new string [] {"document.documentElement.outerHTML;"}); 'コードをテストします。 –

    関連する問題