V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
wico97
V2EX  ›  问与答

js 如何调用 Java 的方法

  •  
  •   wico97 · 2017-05-13 04:29:21 +08:00 · 2163 次点击
    这是一个创建于 2512 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    11 条回复    2017-05-14 01:44:19 +08:00
    KNOX
        1
    KNOX  
       2017-05-13 08:16:44 +08:00 via Android
    据我所知,JS 不能随便调用系统的 API,只能调用原生代码里面约定好的方法,当然这是一般情况,如果是通过 JavaScriptInterface 来交互的话,在 Android 4.2 以下就宽松一点,比如用反射。
    wico97
        2
    wico97  
    OP
       2017-05-13 14:59:24 +08:00
    @KNOX 请问 app 页面加载 js,想调用浏览器打开一个新页面可以使用 window.open 吗还是需要 java 的方法来实现?
    KNOX
        3
    KNOX  
       2017-05-13 15:19:34 +08:00
    @wico97 看你的怎么定义这个新页面,如果是在当前网页跳转到另外一个网页那就网页自己处理,如果说 js 要打开 app 的 activity 这就要和原生代码约定跳转页面,即使 app 是用路由管理页面跳转也要和原生代码约定,不会出现 js 在什么都不知道的情况下随便跳。
    wico97
        4
    wico97  
    OP
       2017-05-13 15:29:51 +08:00
    @KNOX 我想在一个 app 页面加载 js,然后用户点击这个页面的时候,会调用系统的内置浏览器打开一个 url。就这么简单。还需要原生代码的配合吗
    KNOX
        5
    KNOX  
       2017-05-13 16:11:59 +08:00
    @wico97
    wico97
        6
    wico97  
    OP
       2017-05-13 17:11:05 +08:00
    @KNOX js 里的 window.open()在 app 页面使用有什么效果吗。
    KNOX
        7
    KNOX  
       2017-05-13 17:14:54 +08:00
    @wico97 你自己写一下就知道了
    mritd
        8
    mritd  
       2017-05-13 20:34:26 +08:00 via iPhone
    我只知道一个 DWR web 狗路过
    haocity
        9
    haocity  
       2017-05-13 23:25:54 +08:00
    我倒是捣鼓过一个 用浏览器打开一个新页面(非本 webview )的需要 java 实现
    window.open()肯定实现不了
    wico97
        10
    wico97  
    OP
       2017-05-14 00:18:37 +08:00
    @haocity 那用 webview 打开页面呢。
    yumemor
        11
    yumemor  
       2017-05-14 01:44:19 +08:00 via iPhone
    cordova 不就是这么干的吗
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2793 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 00:03 · PVG 08:03 · LAX 17:03 · JFK 20:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.