【问题标题】:Android WebView: Using Script Tags to Load an external javascript file from my assets folderAndroid WebView:使用脚本标签从我的资产文件夹中加载外部 javascript 文件
【发布时间】:2012-05-22 08:49:45
【问题描述】:

我有一个带有 webview 的 android 项目。此 webview 加载存储在我的资产文件夹中的静态 html 文件。在我的资产文件夹中还有一个第 3 方 javascript 库(范围很广)。我的 html 文件头部的脚本标签中有一些 javascript。该 javascript 引用了 rangy 库中的方法和对象。我让我的 html 文件通过脚本标签引用 rangy。当我尝试使用这些函数和方法时,我收到一个错误消息:

    Cannot call method '[any method from rangy library]' of 
    undefined

这里是相关的sn-ps代码。

这是我包含 rangy 的地方:

<html lang="en">
<head>
    <title> </title>
    <meta charset="utf-8">
    <style type="text/css">
    </style>
    <script type="text/javascript" src="rangy.js"></script>
    <script type="text/javascript" src="rangy-serializer.js"></script>
    <script type="text/javascript">

    //...My native js

    </script>
</head>

这是一个非常广泛的 rangy 库。我只在这篇文章中包含我认为与我的问题相关的 hte 库部分:

window['rangy'] = (function() {

//This is all the code for rangy

});

这是我的原生 js 中引用 rangy 的部分。最后的catch块将错误打印到html文档的正文中,因为android webview默认不提供此信息:

jsHandler.restoreSelection = function(selectionDetails) {

        try{
            window.document.body.style.background="yellow";
            window.rangy.deserializeSelection(decodeURIComponent(selectionDetails.replace(/\s+$/, "")));
            window.document.body.style.background="green";
        }
        catch(err){
            window.document.body.innerHTML = err.message;
        } 
    };

我的应用中有一个按钮可以触发 jsHandler.restoreSelection() 函数。当我按下该按钮时,背景从白色变为黄色,但随后该命令捕获异常并将正文文本替换为我在顶部发布的错误消息。我的应用程序设置有什么问题?从我的资产文件夹中的 html 文件中引用外部 js 文件的正确方法是什么? (注意:我确实打开了 javascript)。

谢谢你!

【问题讨论】:

    标签: javascript android html android-webview external-js


    【解决方案1】:

    经过一天的谷歌搜索,我发现这个页面解决了我的问题:Rendering HTML in a WebView with custom CSS 我正在使用 loadDataWithBaseUrl 将数据传递到 webview,但我将 baseurl 作为 null 传递,因为我不知道用它做什么。相反,我将传递对我项目的资产目录的引用。

    【讨论】:

      猜你喜欢
      • 2011-08-04
      • 1970-01-01
      • 2014-01-21
      • 2019-04-24
      • 2012-09-05
      • 1970-01-01
      • 1970-01-01
      • 2017-11-04
      • 1970-01-01
      相关资源
      最近更新 更多