Android,从webview通过JavaScriptInterface启​​动对话

时间:2011-02-12 17:40:06

标签: android dialog webview

我在Web视图中有一个按钮,其中有一个用于在android中触发对话框的onClick js事件。它似乎在我可以测试的所有手机中都能正常工作,但我让用户抱怨他们正在强制退出错误。

这是我的代码。有什么突出的错误吗? 我怀疑我使用的东西只适用于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>

在android活动中:

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

0 个答案:

没有答案