【问题标题】:Expose variable to javascript context (Java / WebView)将变量公开给 javascript 上下文 (Java / WebView)
【发布时间】:2018-12-03 13:19:19
【问题描述】:

我想向全局 javascript 上下文公开一个变量(一个值)。 我不想公开一个界面。我不想公开函数。我想在 javascript 的 global 上下文中公开一个值,这意味着该值应该可以通过 window.my_value; 访问。

我尝试覆盖onPageFinished 方法并运行evaluateJavascript,但这似乎触发了我的应用程序读取值的方式为时已晚(在设置变量时,我的应用程序已经在运行并且已经读取undefined 的值 my_value)。

有没有办法可以在加载任何其他 JS 之前尽快将我的变量以某种方式注入到我正在加载的页面中?

【问题讨论】:

    标签: javascript java android android-webview


    【解决方案1】:

    很简单

    <script type="text/javascript">
        a = 100;
    </script>
    
    <script type="text/javascript">
        alert(a);
        // rest of your javascript code
    </script>
    

    这些不需要在单独的脚本标签中,但出于演示目的,我将保留这些。

    除非您的问题缺少一些重要信息,否则这相当简单。正如您所说,您希望在运行任何其他 javascript 之前设置它。因此,要实现这一点,请在运行任何其他 javascript 之前设置全局变量。

    【讨论】:

    • 我想从我的 Android 应用程序中的 java 代码中公开/注入变量。我无法控制网站。
    • 那将是我当时提到的重要信息。
    • 我提到我尝试覆盖onPageFinished并运行evaluateJavascript的部分,并且标签“java”和“android-webview”没有触发任何铃声?
    • 不,因为我不使用 android 应用程序,因此我不知道 onPageFinished 和 evaluateJavascript 方法负责做什么。你也不能假设其他人会知道。据我所知,您在尝试在 Android 设备上加载的网页上运行一些 javascript 时遇到了困难。
    • 所以...你没看懂问题的一半,但你还是发布了答案?
    猜你喜欢
    • 1970-01-01
    • 2017-08-17
    • 1970-01-01
    • 2014-06-04
    • 2020-11-16
    • 1970-01-01
    • 2016-04-18
    • 2017-10-07
    • 1970-01-01
    相关资源
    最近更新 更多