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();

    }

 

转载于:https://www.cnblogs.com/zimengfang/p/5581613.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值