WebView отображает знак вопроса в синем поле - PullRequest
7 голосов
/ 09 ноября 2010

У меня есть WebView, который отображает кнопку оплаты Google Checkout в виде html.

Когда я запускаю его на эмуляторе, он работает, появляется кнопка оплаты, и я могу нажать ее и перейти на веб-страницу Google Checkout.

Однако, когда я запускаю его на реальном устройстве под управлением Android 2.2, он просто показывает маленькую синюю коробку со знаком вопроса.

что это значит?

            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);

Ответы [ 2 ]

0 голосов
/ 18 ноября 2013

попробуйте это, по-видимому, если веб-просмотр не имеет фокуса, это происходит

        webView.requestFocus(View.FOCUS_DOWN);
0 голосов
/ 13 ноября 2010

Ну, я изменил его, чтобы использовать loadDataWithBaseURL, и он работал ... все еще не знаю, почемуКто-нибудь может уточнить?

//browser.loadData(header+formData+footer, "text/html", "UTF-8");
browser.loadDataWithBaseURL("https://checkout.google.com", header+formData+footer, "text/html", "UTF-8", null);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...