JS关闭Android的Activity异常记录及解决

编程入门 行业动态 更新时间:2024-10-12 05:56:01

JS关闭Android的Activity<a href=https://www.elefans.com/category/jswz/34/1771210.html style=异常记录及解决"/>

JS关闭Android的Activity异常记录及解决

吐槽一下,现在的产品需求是越来越奇葩,越来越没有规则,越来越反人类的了。

今天产品那边说,需要在我们的app内嵌入一个广告的的H5,我们这边负责网页的加载就可以了,其他的诸如界面操作有他们自己实现,界面关闭由我们提供一个本地的方法供后台调用。

刚开始一想,嗯,这需求简单嘛,获取url,加载进去就ok,然后通过注解机制注入JavascriptInterface,并提供一个方法就可以了具体实现如下:

注解JavascriptInterface部分如下:

public final class Javascript {public Javascript() {}@JavascriptInterfacepublic void closeCurrentActivity(){DailyPaperActivity.this.onBackPressed();DailyPaperActivity.this.finish();}
}

原以为这样ok了,但在调用的时候却发现,上述方法不管用,并且还抛了异常:

[INFO:CONSOLE(63)] "Error: Java exception was raised during method invocation", source: :xxxx/app/view/topic-demo/topc-demo.html?token=xxxxxxxxxxxxxxxx&diviceId=xxxxxxxxxxxxxxx&appType=Android (63)

异常的大体意思是说,加载那个url的界面的Java代码执行出现异常,异常发生在js代码的第63行,而JS代码第63行对应的Java代码则是:

DailyPaperActivity.this.onBackPressed();

一下子懵逼了,这个方法还异常了?但也没说具体是什么异常,不知道解决方案,好吧,有事找度娘,百度一下一大堆,包括stackoverflow,无一例外的都是提到更新UI的时候要报这个错,都有没有提到关闭Activity的情景。后来一同行做过这种需求,喊我尝试下注销掉onBackPressed方法这行,直接finish。嗯,算是一个思路,尝试下。

一注消,确实。能够顺利的关闭Activity,也没用异常或者warn信息出现。问题就这么完美的解决了。

public final class Javascript {public Javascript() {}@JavascriptInterfacepublic void closeCurrentActivity(){DailyPaperActivity.this.finish();}
}

仔细一想。这算个什么事儿呢,什么原因引发了这个问题?

留下此问,继续思考。

更多推荐

JS关闭Android的Activity异常记录及解决

本文发布于:2024-02-06 14:54:25,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1749870.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:异常   JS   Android   Activity

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!