2010-11-09 11 views
7

Tengo un WebView que muestra un botón de pago de Google Checkout en un formulario html.WebView muestra un signo de interrogación en un cuadro azul

Cuando lo ejecuto en el emulador funciona, existe el botón de pago y puedo presionarlo e ir a la página web de pago de Google.

Sin embargo, cuando lo ejecuto en un dispositivo real con Android 2.2 solo muestra la pequeña caja azul con un signo de interrogación.

¿Qué significa esto?

  String header = 
       "<html>" + 
        "<head>" + 
        "<script language=\"javascript\">"+ 
         "function pass() {"+ 
          "return checkboxState.checkboxPass();"+ 
         "}"+ 
        "</script>" + 
        "</head>" + 
        "<body>"; 

      String formData = 
      "<center>"+ 
      "<form onSubmit=\"return pass();\" action=\"https://"+host+"api/checkout/v2/checkoutForm/Merchant/"+merchantId+"\" id=\"BB_BuyButtonForm\" method=\"post\" name=\"BB_BuyButtonForm\" target=\"_blank\">"+ 
       "<input name=\"item_name_1\" type=\"hidden\" value=\""+item_name_1+"\"/>"+ 
       "<input name=\"item_description_1\" type=\"hidden\" value=\""+item_name_1+"\"/>"+ 
       "<input name=\"item_quantity_1\" type=\"hidden\" value=\"1\"/>"+ 
       "<input name=\"item_price_1\" type=\"hidden\" value=\""+item_price_1+"\"/>"+ 
       "<input name=\"item_currency_1\" type=\"hidden\" value=\""+item_currency_1+"\"/>"+ 
       "<input name=\"_charset_\" type=\"hidden\" value=\"utf-8\"/>"+ 
       "<input type=\"hidden\" name=\"shopping-cart.items.item-1.merchant-private-item-data\" value=\""+private_item_data+"\">"+ 
       "<input alt=\"Pay With Google Checkout\" src=\"https://"+host+"buttons/buy.gif?merchant_id="+merchantId+"&amp;w=121&amp;h=44&amp;style=trans&amp;variant=text&amp;loc=en_US\" type=\"image\"/>"+ 
      "</form>"+ 
      "</center>"; 

      String footer = "</body></html>"; 

      if(Logging.DEBUG) Log.d(TAG, header+formData+footer); 

      browser = new WebView(ActivityActivate.this); 
      browser.setBackgroundColor(0); 
      browser.getSettings().setJavaScriptEnabled(true); 
      browser.getSettings().setJavaScriptCanOpenWindowsAutomatically(true); 
      browser.getSettings().setSupportZoom(false); 

      browser.addJavascriptInterface(new JavascriptInterface(), "checkboxState"); 
      browser.loadData(header+formData+footer, "text/html", "UTF-8"); 
      llPaymentButtons.addView(browser); 

Respuesta

0

Bueno, lo cambié para usar loadDataWithBaseURL y funcionó ... todavía no estoy seguro de por qué. ¿Puede alguien elaborar?

//browser.loadData(header+formData+footer, "text/html", "UTF-8"); 
browser.loadDataWithBaseURL("https://checkout.google.com", header+formData+footer, "text/html", "UTF-8", null); 
-1

probar esto, al parecer, si en vista web no tiene el foco pasa

 webView.requestFocus(View.FOCUS_DOWN); 
Cuestiones relacionadas