wico97
V2EX  ›  问与答

js 如何调用 Java 的方法

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