WebView blocking pop up windows?
If i am getting right , you need to use JavaScriptInterface for calling JavaScript function from Android.
Check this link which may help you :
http://www.codeproject.com/Articles/392603/Android-addJavaScriptInterface
Or check some websettings : http://developer.android.com/reference/android/webkit/WebSettings.html#setSupportMultipleWindows%28boolean
try to put this code in onCreate()
webView.getSettings().setPluginsEnabled(true);
webView.getSettings().setAllowFileAccess(true);
webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
user1570222
Updated on September 02, 2020Comments
-
user1570222 over 3 years
I'm using
WebView
to browse pesopay.com and it works properly, except when I pressed the submit button. Using internet browsers like Google Chrome will show a pop up window, it confirms the information you filled. But in my AndroidWebView
nothing happened when I pressed the submit button. I think becauseWebView
is not enabled to display a pop up window.Can anyone point me what is wrong?
Here is my activity:
public class PaymentActivity extends Activity { String amount1; @SuppressLint("SetJavaScriptEnabled") @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.payment); Bundle extras = getIntent().getExtras(); if(extras !=null) { amount1 = extras.getString("amount1"); } WebView web = (WebView) findViewById(R.id.web1); web.getSettings().setJavaScriptEnabled(true); web.loadUrl("javascript:window.onload = function(){setValue(\""+ amount1 +"\");};"); web.loadUrl("file:///android_asset/www/index.html"); } }
My web page:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <script type="text/javascript"> function setValue(amount1) { myValue = amount1; document.getElementById("amount").value = myValue; } </script> <script type="text/javascript"> function rand ( n ) { document.getElementById("orderRefId").value = ( Math.floor ( Math.random ( ) * n + 1 ) ); } </script> </head> <body onLoad="rand(200000)"> <!-- Note: https://www.pesopay.com/b2c2/eng/payment/payForm.jsp for live payment URL https://test.pesopay.com/b2cDemo/eng/payment/payForm.jsp for test payment URL --> <form method="POST" name="frmPayment" action="https://test.pesopay.com/b2cDemo/eng/payment/payForm.jsp"> <table> <tbody> <tr> <td>Order Reference No. (your reference number for every transaction that has transpired):</td> <td><input type="text" id="orderRefId" name="orderRef" value="Test-001"/></td> </tr> <tr> <td>Amount:</td> <td><input type="text" name="amount" id="amount" value=""/></td> </tr> <tr> <td>Currency Code - "608" for Philippine Peso, "840" for US Dollar:</td> <td><input type="text" name="currCode" value="608"/></td> </tr> <tr> <td>Language:</td> <td><input type="text" name="lang" value="E"/></td> </tr> <tr> <td>Merchant ID (the merchant identification number that was issued to you - merchant IDs between test account and live account are not the same):</td> <td><input type="text" name="merchantId" value="18056869"/></td> </tr> <tr> <td>Redirect to a URL upon failed transaction:</td> <td><input type="text" name="failUrl" value="http://www.yahoo.com?flag=failed"/></td> </tr> <tr> <td>Redirect to a URL upon successful transaction:</td> <td><input type="text" name="successUrl" value="http://www.google.com?flag=success"/></td> </tr> <tr> <td>Redirect to a URL upon canceled transaction:</td> <td><input type="text" name="cancelUrl" value="http://www.altavista.com?flag=cancel"/></td> </tr> <tr> <td>Type of payment (normal sales or authorized i.e. hold payment):</td> <td><input type="text" name="payType" value="N"/></td> </tr> <tr> <td>Payment Method - Change to "ALL" for all the activated payment methods in the account, Change to "BancNet" for BancNet debit card payments only, Change to "GCASH" for GCash mobile payments only, Change to "CC" for credit card payments only:</td> <td><input type="text" name="payMethod" value="ALL"/></td> </tr> <tr> <td>Remark:</td> <td><input type="text" name="remark" value="Asiapay Test"/></td> </tr> <!--<tr> <td>Redirect:</td> <td><input type="text" name="redirect" value="1"/></td> </tr>--> <tr> <td></td> </tr> <input type="submit" value="Submit"> </tbody> </table> </form> </body> </html>
-
user1570222 over 11 yearsBut its just displaying a toast in webview.
-
user1570222 over 11 yearsthe pop up that doesn't display in my web view is not what I created. it a pop up of the site that I'm browsing. link test.pesopay.com/b2cDemo/eng/payment/payForm2.jsp
-
Nibha Jain over 11 yearsok ok i got it ,hav u tried this on onCreate() webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
-
Nibha Jain over 11 yearsor check some other we setting which may help you developer.android.com/reference/android/webkit/…
-
MysticMagicϡ over 9 years+1. Thanks.
webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
is working for me.