js 如何调用 Java 的方法

2017-05-13 04:29:21 +08:00
 wico97

安卓 app 如果加载 js,通过 js 调用 java 的 webview.loadurl 打开新页面。如果默认已经开启了允许 js 允许 webSettings.setJavaScriptEnabled(true)。 js 有哪些安卓的公开 api 可以直接使用?

2236 次点击
所在节点    问与答
11 条回复
KNOX
2017-05-13 08:16:44 +08:00
据我所知,JS 不能随便调用系统的 API,只能调用原生代码里面约定好的方法,当然这是一般情况,如果是通过 JavaScriptInterface 来交互的话,在 Android 4.2 以下就宽松一点,比如用反射。
wico97
2017-05-13 14:59:24 +08:00
@KNOX 请问 app 页面加载 js,想调用浏览器打开一个新页面可以使用 window.open 吗还是需要 java 的方法来实现?
KNOX
2017-05-13 15:19:34 +08:00
@wico97 看你的怎么定义这个新页面,如果是在当前网页跳转到另外一个网页那就网页自己处理,如果说 js 要打开 app 的 activity 这就要和原生代码约定跳转页面,即使 app 是用路由管理页面跳转也要和原生代码约定,不会出现 js 在什么都不知道的情况下随便跳。
wico97
2017-05-13 15:29:51 +08:00
@KNOX 我想在一个 app 页面加载 js,然后用户点击这个页面的时候,会调用系统的内置浏览器打开一个 url。就这么简单。还需要原生代码的配合吗
KNOX
2017-05-13 16:11:59 +08:00
@wico97
wico97
2017-05-13 17:11:05 +08:00
@KNOX js 里的 window.open()在 app 页面使用有什么效果吗。
KNOX
2017-05-13 17:14:54 +08:00
@wico97 你自己写一下就知道了
mritd
2017-05-13 20:34:26 +08:00
我只知道一个 DWR web 狗路过
haocity
2017-05-13 23:25:54 +08:00
我倒是捣鼓过一个 用浏览器打开一个新页面(非本 webview )的需要 java 实现
window.open()肯定实现不了
wico97
2017-05-14 00:18:37 +08:00
@haocity 那用 webview 打开页面呢。
yumemor
2017-05-14 01:44:19 +08:00
cordova 不就是这么干的吗

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/361010

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX