Я не могу вызвать функцию Android из JavaScript - PullRequest
0 голосов
/ 09 июля 2011

Я только начал создавать своего рода гибридное приложение для Android, приложение с WebView. В качестве первого шага я попытался вызвать функцию кода Android из JavaScript. Но приложение продолжает падать, пока я на нем.

Все, что я делал, это настраивал WebView, добавлял класс, который используется из кода JavaScript, а затем вызывал функцию из JavasScript.

Заранее спасибо.

Коды Android следующие:

public class Grand_ride_androidActivity extends Activity {
    WebView mWebView;
...
   public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        mWebView = (WebView) findViewById(R.id.webview);
        mWebView.getSettings().setJavaScriptEnabled(true);


        mWebView.addJavascriptInterface(new JavaScriptInterface(this), "Android");
        mWebView.loadUrl(Config.url);
    }
}

public class JavaScriptInterface {
    Context mContext;

    JavaScriptInterface(Context c) {
        mContext = c;
    }

    public void ensureTracking(Integer rideId) {
        //do nothing
    }
}

А HTML выглядит следующим образом:

...
<body>

<script type="text/javascript">
//<![CDATA[
        Android.ensureTracking(97);
//]]>
</script><div>
        <p>You have checked in at 03:44PM</p>
        <a href="/rides/97/check_out">Check out</a>
</div>
</body>

1 Ответ

3 голосов
/ 09 июля 2011

Я думаю, что вы можете использовать только примитивные типы и String, поэтому sureTracking (Integer rideId) должен быть sureTracking (int rideId).

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