zoukankan      html  css  js  c++  java
  • Android JS 交互出现 Uncaught Error: Error calling method on NPObject

    由于HTML5的功能越来越强大,native app的一些功能逐步被html页面代替,不可避免的JS交互也用到的也越来越多.在第一个版本向第二个版本迭代的过程中却发生了莫名其妙的问题,第一个版本JS调用的方法如下:
    1 public void gotoAdvisorDetail(String id) {
    2      if (!TextUtils.isEmpty(id)) {
    3           Intent intent = new Intent(mContext, Detail.class);
    4           intent.putExtra("id", id);
    5           mContext.startActivity(intent);
    6       }
    7 }

    实现的功能就是根据id 打开对应对象的详情界面

    在第二个版本中的需求是增加一个参数,跳转到详情界面的第几个Fragment,直接增加参数方法改为如下:

    public void gotoAdvisorDetail(String advisor_id,String position) {
            if (!TextUtils.isEmpty(advisor_id)) {
                Intent intent = new Intent(mContext, Detail.class);
                intent.putExtra("advisor_id", advisor_id);
                int pos = Integer.parseInt(position);
                intent.putExtra("position", pos);
                mContext.startActivity(intent);
            }
        }

    但是这个时候就出现了题目所示的异常:6-13 15:37:14.717: E/Web Console(19235): Uncaught Error: Error calling method on NPObject. at http://192.168.1.11/mobile/..........js:428

    莫名其妙啊,我只是多加了个参数而已,后来在stackoverflow上搜出的解释大多是Android线程安全的问题,创建子线程进行操作,于是代码改成了下面这样问题就解决了

    public void gotoAdvisorDetail(final String advisor_id, final String position) {
            new Thread(new Runnable() {
                @Override
                public void run() {
                    if (!TextUtils.isEmpty(advisor_id)) {
                        Intent intent = new Intent(mContext, Detail.class);
                        intent.putExtra("advisor_id", advisor_id);
                            if (!TextUtils.isEmpty(position)) {
                                Logger.i("gotoAdvisorDetail position = " + position);
                                int pos = Integer.parseInt(position);
                                intent.putExtra("position", pos);
                            }
                        mContext.startActivity(intent);
                    }
                }
            }).start();
    
        }
  • 相关阅读:
    触发器基本使用
    查询结果合并用逗号分隔
    查询报表增加小计功能
    sql语句格式化数字(前面补0)
    如何在选择画面中创建下拉列表(drop down list)-as list box
    如何更改函数的函数组(function group)
    ABAP语言中如何定义嵌套内表(nested internal table)
    [REUSE_ALV_GRID_DISPLAY]如何指定单元格颜色
    如何创建嵌套动态内表(Nested dynamic internal table)
    如何根据方法名(method)查找所在类(class)-SE84
  • 原文地址:https://www.cnblogs.com/zimengfang/p/5581613.html
Copyright © 2011-2022 走看看