wico97
V2EX  ›  问与答

js 如何调用 Java 的方法

  •  
  •   wico97 · May 13, 2017 · 2661 views
    This topic created in 3316 days ago, the information mentioned may be changed or developed.

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

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