Android Webview HTML加载Javascript问题

Kee*_*nan 7 javascript android android-webview

我一直在与这个问题争斗超过48小时,我无法在网上任何地方找到答案.这是设置:

我的Android应用程序在首次运行时下载内容(内容超过20MB),文件解压缩到用户的SD卡/ mnt/sdcard/{my package} /文件夹中.内容包括HTML文件,CSS文件,JS文件和图像.这是写入SD卡的完整结构(其中/ =/mnt/sdcard/{my package}/folder /):

/内容/

a.html
b.html
images/
  image1.jpg
Run Code Online (Sandbox Code Playgroud)

/ CSS /

c.css
d.css
Run Code Online (Sandbox Code Playgroud)

/ JS /

e.js
f.js
Run Code Online (Sandbox Code Playgroud)

这是我从SD卡加载html文件的代码:

    webView = (WebView) findViewById(R.id.pageBrowser);
    webView.getSettings().setJavaScriptEnabled(true);
    webView.addJavascriptInterface(new LinkHandlerInterface(), "Android");
    webView.setWebViewClient(new PageWebViewClient());

    // contentLocation + url is equal to the full path to the html file
    webView.loadUrl("file://" + contentLocation + url);
Run Code Online (Sandbox Code Playgroud)

此代码成功加载HTML页面.没有问题.每个页面都有以下标题:

    <link rel="stylesheet" type="text/css" href="../css/screen.css" media="all" />
    <link rel="stylesheet" type="text/css" href="../css/inPractice.css" media="all" />
    <link rel="stylesheet" type="text/css" href="../css/inPracticeScheme.css" media="all" />
    <link rel="stylesheet" type="text/css" href="../css/mobile/iPad.css" media="all" />
    <script type="text/javascript" src="../js/jquery-1.3.2.min.js"></script>
    <script type="text/javascript" src="../js/inPractice-utilities.js"></script>
    <script type="text/javascript" src="../js/inPractice.js"></script>
    <script type="text/javascript" src="../js/mobile/inpractice.ipad.js"></script>
Run Code Online (Sandbox Code Playgroud)

这就是问题所在.我的WebView渲染HTML就好了.它甚至可以完美地加载和应用CSS.但是,它拒绝加载和执行Javascript.如果你从上面记得,js文件夹实际上是从html文件中提取的,所以它指向正确的位置.

这是我所知道的清单:

  • 我正在使用的CSS正在应用,所以我知道问题不在于文件位置.

  • 之前我使用过相同的代码,但是从我的应用程序的资源文件夹(文件:/// android_assets/...)加载文件,它运行得很好.由于内容太大,我无法将其与我的应用程序捆绑在一起,因此转移到SD卡.

  • 如果我更改HTML文件的方式是所有Javascript方法都列在脚本标记内,它可以正常工作.我无法控制HTML,因此我无法永久应用此更改.这告诉我WebView执行Javascript没有问题.

  • 图像加载正常.

我现在的想法很新鲜.有没有人知道为什么我的WebView无法加载我的Javascript文件?谁看过这个吗?

编辑:这里是我试图使用的JS文件可以在这里查看:

http://www.automatastudios.com/clients/cco/inpractice/css/inPractice.css http://www.automatastudios.com/clients/cco/inpractice/css/inPracticeScheme.css http://www.automatastudios. com/clients/cco/inpractice/css/screen.css http://www.automatastudios.com/clients/cco/inpractice/css/mobile/iPad.css

  • 注意:这些CSS文件不是由我创作的.

Kee*_*nan 4

始终无法找到解决方案。

我最终只是编辑了 HTML 文件,将 Javascript 源文件更改为内联 Javascript。这有效(正如我预期的那样)。