Android WebView: вызов методов действия из интерфейса JavaScript - PullRequest
5 голосов
/ 05 октября 2011

Можно ли вызвать методы основной деятельности из интерфейса JavaScript объекта WebView? Или получить доступ к SharedPreferences из этого интерфейса, чтобы я мог читать данные своей активности? Я хотел бы, чтобы моя активность знала, что произошло конкретное действие JavaScript.

Ответы [ 3 ]

3 голосов
/ 05 октября 2011

Да, двусторонняя связь между JavaScript и вашим приложением возможна через WebView.addJavascriptInterface(). Проверьте этот пример:

http://android -developers.blogspot.com / 2008/09 / с использованием-webviews.html

2 голосов
/ 05 июня 2013

Ваша активность:

/*
 * entry point of the application starting the index.html of PhoneGap
 * */

package com.test.my.myApp;

import org.apache.cordova.DroidGap;

import android.os.Bundle;
import android.util.Log;

import com.google.analytics.tracking.android.EasyTracker;

public class MyOpelMainActivitiy extends DroidGap
{

    String curPhoneNumber;

    @Override
    public void onCreate(Bundle savedInstanceState)
    { 
        super.onCreate(savedInstanceState);
        super.setIntegerProperty("splashscreen", R.drawable.splash);
        super.loadUrl("file:///android_asset/www/app/index.html",15000); 

    }
    @Override
    public void onStart() {
      super.onStart();
      this.appView.addJavascriptInterface(new JsInterface(), "android");  
      curPhoneNumber = "test";

      // The rest of your onStart() code.
      EasyTracker.getInstance().activityStart(this); // Add this method.
    }

    @Override
    public void onDestroy() 
    {
        super.onDestroy();       
        com.google.analytics.tracking.android.EasyTracker.getInstance().activityStop(this);
    }

    public class JsInterface{   





            public String getPhoneNumber()
            {

                // Here call any of the public activity methods....
                return curPhoneNumber;
            }
        }
    }

Разметка HTMl:

<script type="text/javascript">
            alert(android.getPhoneNumber());
        </script>

=============================================== =========================

1 голос
/ 05 октября 2011

Вы можете использовать функцию WebView.addJavascriptInterface для достижения этой цели. Дополнительная информация: В документации Google

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...