Bootstrap/JQuery 不工作 Android Webview

Posted

技术标签:

【中文标题】Bootstrap/JQuery 不工作 Android Webview【英文标题】:Bootstrap/JQuery not working Android Webview 【发布时间】:2018-08-31 04:42:22 【问题描述】:

我的代码在浏览器中打开时可以正常工作,但 Bootstrap 和 javascript 不会在 android webview 中加载。

index.html

<head>
 <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
 <link rel="stylesheet" href="index.css">
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
 <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
 <script src="index.js"></script>
</head>
<div class="col-sm-12" id="header">
 <h1>Project Name</h1>
</div>
<div class="container-fluid" id="wrapper">
 <div class="row">
  <div class="col-sm-4" id="rowBlank"></div><div class="col-sm-3" id="rowFormControl"><input class="form-control" id="searchTerm" type="text"></div>
  <div class="col-sm-5" id="rowButtons"><button class="btn btn-primary btn-md" id="search" type="submit">Wiki</button><a href="https://en.wikipedia.org/wiki/Special:Random" class="btn btn-    primary btn-md" id="random" target="_blank">????</a></div>
 </div>
 <div class="col-sm-12" id="rowOutput">
  <h3 id="output"></h3>
  </div>
</div>

MainActivity.java

package my.work.domain.ProjectName;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.webkit.WebChromeClient;
import android.webkit.WebView;

public class MainActivity extends AppCompatActivity 

    @Override
    protected void onCreate(Bundle savedInstanceState) 
        super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    String url = "file:///android_asset/www/index.html";
    WebView webView = (WebView)findViewById(R.id.webView);
    webView.getSettings().setJavaScriptEnabled(true);
    webView.setWebChromeClient(new WebChromeClient());
    webView.loadUrl(url);
    

任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

您的代码看起来不错,并且所有来自 CDN 的 URL 都是可连接的。我可以alert 使用jQuery。所以确定

    index.html 位于app/src/main/assets/www/

    试试下面的 HTML 代码,如果 Jquery 加载成功会弹出消息

    <head>
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
        <link rel="stylesheet" href="index.css">
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
        <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
        <script src="index.js"></script>
        <script type="text/javascript">
            $(document).ready(function() 
              alert("document ready occurred!");
            );
        </script>
    </head>
    <div class="col-sm-12" id="header">
    <h1>Project Name</h1>
    </div>
    <div class="container-fluid" id="wrapper">
    <div class="row">
    <div class="col-sm-4" id="rowBlank"></div><div class="col-sm-3" id="rowFormControl"><input class="form-control" id="searchTerm" type="text"></div>
    <div class="col-sm-5" id="rowButtons"><button class="btn btn-primary btn-md" id="search" type="submit">Wiki</button><a href="https://en.wikipedia.org/wiki/Special:Random" class="btn btn-    primary btn-md" id="random" target="_blank">????</a></div>
    </div>
    <div class="col-sm-12" id="rowOutput">
    <h3 id="output"></h3>
    </div>
    </div>
    

【讨论】:

没有代码我帮不了你,但首先要确保你的 Java 文件看起来像这个问题,而 HTML 文件看起来像我的答案。

以上是关于Bootstrap/JQuery 不工作 Android Webview的主要内容,如果未能解决你的问题,请参考以下文章

带有 Google Docs IFRAME 的 Bootstrap/JQuery 响应式/居中模式

带有 wordpress jquery 的 Bootstrap 4

01 bootstrap 笔记

Bootstrap / jQuery:在导航栏中滑动“活动”状态

使用 bootstrap + jQuery 重置模态数据

使用 Bootstrap (jQuery) 进行表单验证