Подтвердить что ты не робот

Android WebView не загружает jQuery

Я делаю webapp, и я использую jQuery.

Я создал простое приложение для Android с WebView, и я загружаю свой URL: www.mydomain.com

В mydomain.com у меня есть:

<script src="js/jquery_1.4.2_min.js"></script> 

<script type="text/javascript" charset="utf-8">
$(document).ready(function(){
 alert("Hii!!!!");
});
</script>

Если я нахожусь в mydomain из браузера, предупреждение показывает, что это хорошо. Но если я нахожусь в своем родном приложении, он не отображается. Что я могу сделать?

4b9b3361

Ответ 1

Включен ли JavaScript в ваш веб-просмотр...?

WebView.getSettings().setJavaScriptEnabled(true);

Ответ 2

Я не эксперт с родным Android, но мы только что разработали приложение, использующее сайт на основе jQuery в веб-обзоре. Вам нужно setJavaScriptEnabled (true) в вашем классе активности, а jQuery запускает jsut fine. Однако ваш пример с предупреждением ( "Привет" ); не будет работать, потому что веб-просмотры Android не поддерживают оповещения по умолчанию. Он может быть включен с небольшим количеством поисковых запросов... http://lexandera.com/2009/01/adding-alert-support-to-a-webview/

В качестве альтернативы мы добавили пользовательскую функцию showAlert js для отображения довольно пользовательских уведомлений.

Ответ 3

Старый вопрос, но я думал, что все равно добавлю свои 2cents.

Предупреждения Javascript работают в веб-просмотре, но сначала вы должны установить клиент веб-хрома.

webView.setWebChromeClient(new WebChromeClient())

Ответ 4

Где находится ваш js/jquery_1.4.2_min.js script? Если он находится в вашем каталоге активов, то вы должны инициализировать webView, предоставляя ему каталог ресурсов как baseUrl:

webView.loadDataWithBaseURL("file:///android_asset/", data, "text/html", "UTF-8", null);

или

webView.loadUrl("file:///android_asset/file.html");

Вы можете попытаться создать простой .js файл с простой функцией, например

function dummy(document) { document.write("Hooray it works"); }

и попытайтесь получить доступ к фиктивной функции в вашем html, чтобы проверить, включен ли .js файл.

Ответ 5

Вам могут понадобиться две вещи:

webSettings.setJavaScriptEnabled(true);
webView.setWebChromeClient(new WebChromeClient());

Ответ 6

Проблема заключается в расположении файла jquery.js. Отправьте некоторый код о том, как вы настраиваете webView. Это даст нам несколько советов.

В качестве примера рассмотрим следующее: http://techdroid.kbeanie.com/2010/10/android-webview-javascript-and-css.html

Ответ 7

Попробуйте следующее: создайте основную активность.

       import android.app.Activity;
       import android.os.Bundle;
       import android.webkit.WebView;
        import android.webkit.WebViewClient;

      public class MainActivity extends Activity {
       private WebView webView;
        private JavaScriptInterFace javaScriptInterFace;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    webView=(WebView)findViewById(R.id.webView);
    javaScriptInterFace=new JavaScriptInterFace(this);
    webView.addJavascriptInterface(javaScriptInterFace, "AndroidFunction");
    webView.getSettings().setJavaScriptEnabled(true); 
    webView.loadUrl("file:///android_asset/test.html");
    webView.setWebViewClient(new WebViewClient());

   }



      }

Создайте еще один java файл с именем JavaScriptInterFace

    import android.content.Context;
    import android.util.Log;
      import android.widget.Toast;

        public class JavaScriptInterFace {
 Context mContext;

 JavaScriptInterFace(Context c) {
     mContext = c;
             }

 public int changeImage(){
    Log.e("Got", "it"+2); 
     return 2;
 }

 public void showToast(){
     Toast.makeText(mContext, "hi", Toast.LENGTH_SHORT).show();
 }

     }  

создайте файл html, разместив его в папке с ресурсом проекта

     <!DOCTYPE html>
       <html>
         <head>
            <meta charset="UTF-8">
       <meta name="viewport" content="width=device-width; user-scalable=0;" />
       <title>My HTML</title>
      </head>
        <body>
         <p id="mytext">Hello!</p>
             <img alt="show" src="ic_left_arrow.png" id="myImage"/>
           </br>
           <input type="button" value="Change" onClick="changeImage()" />
           <input type="button" value="Show tost" onClick="showToast()" />

           <script language="javascript">
             function changeImage() {
               i=AndroidFunction.changeImage();
            if(i===2){
           document.getElementById('mytext').innerHTML = i;
           document.getElementById('myImage').src="ic_right_arrow.png";
        }
           }
          function showToast() {
              AndroidFunction.showToast();
          }

         </script>

           </body>
            </html>

Поместите необходимые изображения в папку ресурса вашего проекта вместе с указанным выше html файлом.

Ответ 8

Правильная последовательность -

webview.getSettings() setJavaScriptEnabled (истина). webview.loadUrl( "Файл:///android_asset/xxx.html" );

По ошибке не помещайте свою последовательность вызовов, как показано ниже

webview.loadUrl( "Файл:///android_asset/xxx.html" );  . Webview.getSettings() setJavaScriptEnabled (истина);