wendux / DSBridge-Android

:earth_americas: A modern cross-platform JavaScript bridge, through which you can invoke each other's functions synchronously or asynchronously between JavaScript and native.
3.73k stars 613 forks source link

你好,为什么安卓 js异步调用我的本地选时间组件,不能正常调用,提示 call failed:the parameter of "selectDate" in java is invalid,但是我已经检查了好多遍没啥问题 #102

Open GoogleClick opened 5 years ago

GoogleClick commented 5 years ago

如题,你好,为什么安卓 js异步调用我的本地选时间组件,不能正常调用,提示 call failed:the parameter of "selectDate" in java is invalid,但是我已经检查了好多遍没啥问题,就是不能正常调用。

以下js异步调用我的接口源码:

@JavascriptInterface
    public void selectDate(Object msg, final CompletionHandler<String> handler) {
        TimePickerView startPV = new TimePickerView.Builder(activity, new TimePickerView.OnTimeSelectListener() {
            @Override
            public void onTimeSelect(Date date, View v) {
                JSONObject jsonObject = new JSONObject();
                try {
                    jsonObject.put("result", "success");
                    jsonObject.put("message", "");
                    jsonObject.put("data", String.valueOf(date.getTime() * 1000));
                } catch (JSONException e) {
                    e.printStackTrace();
                }
                handler.complete(jsonObject.toString());
            }
        })
                .setType(new boolean[]{true, true, true, true, true, false})// 默认全部显示
                .setCancelText("取消")//取消按钮文字
                .setSubmitText("确定")//确认按钮文字
                .setContentSize(22)//滚轮文字大小
                .setTitleSize(22)//标题文字大小
                .setTitleText("设置时间")//标题文字
                .setOutSideCancelable(true)//点击屏幕,点在控件外部范围时,是否取消显示
                .isCyclic(true)//是否循环滚动
                .setLabel("", "月", "日", "时", "分", "秒")//默认设置为年月日时分秒
                .isCenterLabel(true) //是否只显示中间选中项的label文字,false则每项item全部都带有label。
//.isDialog(true)//是否显示为对话框样式
                .build();
        startPV.setDate(Calendar.getInstance());
        startPV.show();
}
wendux commented 5 years ago

贴出你的调用代码