V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
firhome
V2EX  ›  Android

Android webview 只能访问 js 的方法?

  •  
  •   firhome · 2017-07-31 11:26:45 +08:00 · 8446 次点击
    这是一个创建于 2675 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我的页面上定义了一个变量 window.xxx ;

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

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

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

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

    这样的方式调我的 js 函数 , 然后我 js 函数再调用 他的方法 把值传过去。
    vjnjc
        5
    vjnjc  
       2017-07-31 13:40:25 +08:00
    @firhome 其实像 2 楼说的还有 webView.evaluateJavascript()这种方式,但这种方式只有 android 4.4+才能用,有兼容性问题。
    而 webview.loadUrl()就没有兼容性问题了,方法就是你提到的。
    nicevar
        6
    nicevar  
       2017-07-31 13:45:01 +08:00
    最好做个标准接口操作,不要搞成一旦变动两边都要改
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1185 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 18:35 · PVG 02:35 · LAX 10:35 · JFK 13:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.