У меня есть кнопка в веб-представлении с событием 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;
}