firhome
V2EX  ›  Android

Android webview 只能访问 js 的方法?

  •  
  •   firhome · Jul 31, 2017 · 12401 views
    This topic created in 3215 days ago, the information mentioned may be changed or developed.
    我的页面上定义了一个变量 window.xxx ;

    Ios 那可以直接访问到这个变量。

    Android 的同事告诉我只能调用我一个 js 方法,然后我通过这个方法来调 Android 的一个方法来把值传给他。

    请问各位大佬 是这样嘛? 有没有解决方案呢?
    6 replies    2017-07-31 13:45:01 +08:00
    vjnjc
        1
    vjnjc  
       Jul 31, 2017
    你的意思是 android 只能访问 js 方法,而不能访问 js 变量么?
    TJT
        2
    TJT  
       Jul 31, 2017
    webView.evaluateJavascript 想干嘛都行
    debuggerx
        3
    debuggerx  
       Jul 31, 2017
    你就在页面用 eval 写个 get 方法,然后安卓端不就想拿啥拿啥咯
    function get(str){
    return eval(str);
    }
    firhome
        4
    firhome  
    OP
       Jul 31, 2017
    @vjnjc 是的阿。说只能通过类似:

    myWebView.loadUrl("javascript:myFunction()");

    这样的方式调我的 js 函数 , 然后我 js 函数再调用 他的方法 把值传过去。
    vjnjc
        5
    vjnjc  
       Jul 31, 2017
    @firhome 其实像 2 楼说的还有 webView.evaluateJavascript()这种方式,但这种方式只有 android 4.4+才能用,有兼容性问题。
    而 webview.loadUrl()就没有兼容性问题了,方法就是你提到的。
    nicevar
        6
    nicevar  
       Jul 31, 2017
    最好做个标准接口操作,不要搞成一旦变动两边都要改
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5265 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 58ms · UTC 08:31 · PVG 16:31 · LAX 01:31 · JFK 04:31
    ♥ Do have faith in what you're doing.