如何在本机WebView中传递post参数?

时间:2018-02-05 20:21:40

标签: react-native webview

我想在我的应用中使用WebView打开一个网址,以避免用户不得不从应用程序重定向到移动浏览器。但是,我想要显示的网页需要一些帖子参数,例如来自帖子表单。如果是GET情况,我只需将参数附加到网址即可。

<WebView
    source={{uri: 'https://mypage.com/index.php', headers: '---', body: '---'}}
    style={{marginTop: 20}}
  />

我是否将它们放在headersbody中,以及采用何种格式?或者还有另一种方式吗?我希望参数采用键值格式,即cat=himalayan&dog=pug&fish=shark

3 个答案:

答案 0 :(得分:9)

您必须在源代码中添加方法,如此

<WebView
    source={{uri: 'https://mypage.com/index.php', headers: '---', body: '---',method:'POST'}}
    style={{marginTop: 20}}
  />

答案 1 :(得分:1)

将这段代码放在正文中:

COLUMNS <- c("TEST1", "TEST2", "TEST3")
df[paste0(COLUMNS)] <- replace(df[COLUMNS],df[COLUMNS] < 50, 0 , 1, NA)

答案 2 :(得分:1)

我们可以通过两种方式在 webview 中进行表单发布

第一种方式:

const headerObj= { 'Content-Type': 'application/x-www-form-urlencoded'}
const postData = {
  key1: value1,
  key2: value2,
};
let urlEncodedData = '',
  urlEncodedDataPairs = [],
  key;
for (key in postData) {
  urlEncodedDataPairs.push(
    encodeURIComponent(key) + '=' + encodeURIComponent(postData[key]),
  );
}
urlEncodedData = urlEncodedDataPairs.join('&').replace(/%20/g, '+');

<WebView
source={{uri: 'https://mypage.com/index.php', headers: headerObj, body: urlEncodedData, method:'POST'}}
style={{marginTop: 20}} />

第二种方式:使用 Html

  <WebView
    source={{html: `<html> <body onload="document.forms[0].submit();">
                  <form method="post" action=${this.state.URL}>
                    <input type="hidden" name="key1"  value=${value1} >
                    <input type="hidden" name="key2" value=${tvalue2} >
                  </form >
                </body> </html>`,}}
  />