Android, запуск диалога через JavaScriptInterface из веб-просмотра - PullRequest
0 голосов
/ 12 февраля 2011

У меня есть кнопка в веб-представлении с событием onClick js, используемым для вызова диалогового окна в Android.Кажется, он работает нормально на всех телефонах, которые я могу протестировать, но у меня есть пользователи, жалующиеся на то, что они получают ошибку принудительного выхода.

Вот мой код.Что-то выделяется как неправильное?Я подозреваю, что я использую что-то, что работает только в 2.2, а пользователи, у которых возникают проблемы, используют 2.1, но я не знаю, как проверить, все ли в порядке.

На появившейся веб-страницев вебвью:

<script type="text/javascript">
function showAndroidToast(toast) {
    Android.showToast(toast);
}
</script>
<a href="javascript:;" onClick="showAndroidToast('http://mysite.com/image.jpg')">Options</a>

в андроид активности:

public static final int DIALOG_IMAGES_ID = 0;

public class JavaScriptInterface {
   Context mContext;

   /** Instantiate the interface and set the context */
   JavaScriptInterface(Context c) {
      mContext = c;
   }

   /** Show a toast from the web page */
   public void showToast(String toast) {
      showDialog(DIALOG_IMAGES_ID);
      browserImage = toast;
   }

}


    @Override
    protected Dialog onCreateDialog(int id) {
        Dialog dialog = null;
        switch(id) {
        case DIALOG_IMAGES_ID:
            // do the work to define the pause Dialog
            final CharSequence[] items = {"Save Image", "Set Wallpaper", "Share Image"};
            AlertDialog.Builder builder = new AlertDialog.Builder(this);
            builder.setTitle("Use this image");
            builder.setItems(items, new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int item) {
                    if(items[item]=="Save Image"){
                        // do something
                    }else if(items[item]=="Share Image"){
                        // do something
                    }else if(items[item]=="Set Wallpaper"){
                        // do something
                    }

                }
            });
            AlertDialog alert = builder.create();
            alert.show();
            break;
        default:
            dialog = null;
        }
        return dialog;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...