我无法从javascript调用android函数

时间:2011-07-09 16:49:46

标签: javascript android webview

我刚刚开始制作一种Android混合应用程序,一个使用WebView的应用程序。作为第一步,我尝试从JavaScript调用Android代码的功能。但是,当我在它时,应用程序一直在崩溃。

我所做的就是设置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 个答案:

答案 0 :(得分:3)

我认为你只能使用原始类型和String,所以ensureTracking(Integer rideId)应该是ensureTracking(int rideId)。