2017-08-08 15 views
-2

私は、モバイルアプリからJavascriptインジェクションを使用して、アプリからのデータをWebビューのフィールドに渡そうとしています。私は、名前、電子メール、ectなどのフィールドを持つウェブサイトのフォームを持っています。名前と電子メール、その他の情報はすべて私のネイティブモバイルアプリケーションにあります。その相対的な情報をそれぞれのWebフォームフィールドに渡したいと思います。これは可能ですか?以下は私が試みたものです。webviewを使用してアプリからウェブフォームにデータを渡すことはできますか?

 wv = (WebView) mRootView.findViewById(R.id.wv_help); 
     wv.getSettings().setJavaScriptEnabled(true); 
     wv.setWebViewClient(new WebViewClient() { 
      public void onPageFinished(WebView view, String url) { 
       // do nothing 
      } 

      @SuppressWarnings("deprecation") 
      @Override 
      public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { 
       // do nothing 
      } 

      @TargetApi(android.os.Build.VERSION_CODES.M) 
      @Override 
      public void onReceivedError(WebView view, @NonNull WebResourceRequest req, @NonNull WebResourceError err) { 
       // do nothing 
      } 
     }); 

     String htmlValue = "<html xmlns=\"https://my_web_form.com\"><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\"><title>Lorem Ipsum</title></head><body style=\"width:300px; color: #00000; \"><p><strong> About us</strong> </p><p><strong> Lorem Ipsum</strong> is simply dummy text</p></body></html>"; 
     wv.loadDataWithBaseURL("https://my_web_form.com", htmlValue, "text/html; charset=utf-8", "UTF-8", ""); 

上記のコードの結果は、メタデータを含む空白の画面になります。 Webフォームの特定のフィールドにメタデータのテキストを追加できます。

+0

downvoteに行く場合は、推論を説明してください。私が尋ねた質問は正当なものであり、SOのルール/基準に従っています。 – portfoliobuilder

答えて

1

WebViewにはpostUrl機能があります。

WebView webview = new WebView(this); 
setContentView(webview); 
String url = "http://www.example.com"; 
String postData = "Your Post data here"; 
webview.postUrl(url,postData.getBytes()); 
+0

私は姓、姓のフォームを持っているとします。投稿URLは、モバイルアプリからのデータを相対的なフィールドに渡すことで、そのフォームにどのように入力できるのですか? Webアプリケーションではないことを理解してください。これは、Webビューを使用するネイティブアプリケーションです。 – portfoliobuilder

+0

このように 'String postData =" firstname = "+ URLEncoder.encode(my_firstname、" UTF-8 ")+"&lastname = "+ URLEncoder.encode(lastname、" UTF-8 ");' – Fr099y

+0

これは動作していますが、ありがとうございました! – portfoliobuilder

0

はいpostUrl関数を使用すると可能です。

関連する問題