我无法从JavaScript调用一个机器人功能 [英] I cannot call an android function from javascript

查看:101
本文介绍了我无法从JavaScript调用一个机器人功能的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我刚开始做一种混合型的Andr​​oid应用程序,用的WebView的应用程序。作为第一步,我试图从JavaScript调用Android的code的作用。但是,尽管我在它的应用不断崩溃。

我所做的只是设置的WebView,并称是从JavaScript code使用的类,然后调用从使用JavasScript功能。

先谢谢了。

在Android codeS是以下几点:

 公共类Grand_ride_androidActivity延伸活动{
    的WebView mWebView;
...
   公共无效的onCreate(捆绑savedInstanceState){
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.main);        mWebView =(的WebView)findViewById(R.id.webview);
        mWebView.getSettings()setJavaScriptEnabled(真)。
        mWebView.addJavascriptInterface(新JavaScriptInterface(本),机器人);
        mWebView.loadUrl(Config.url);
    }
}公共类JavaScriptInterface {
    上下文mContext;    JavaScriptInterface(上下文C){
        mContext = C;
    }    公共无效ensureTracking(整数rideId){
        //没做什么
    }
}

和HTML是以下内容:

  ...
<身体GT;<脚本类型=文/ JavaScript的>
//<![CDATA [
        Android.ensureTracking(97);
//]]>
< / SCRIPT>< D​​IV>
        &LT; P&gt;您必须在03:44 PM</p>检查中;
        &LT; A HREF =/游戏机/ 97 / CHECK_OUT&GT;查看&LT; / A&GT;
&LT; / DIV&GT;
&LT; /身体GT;


解决方案

我觉得你可以只使用基本类型和字符串,因此ensureTracking(整数rideId)应ensureTracking(INT rideId)。

I just started make a kind of Android hybrid app, an application with WebView. As a first step, I tried to call a function of Android code from JavaScript. But, the app keeps crashing while I am at it.

All I did was setting up WebView, adding a class that is used from JavaScript code, then calling the function from JavasScript.

Thanks in advance.

The android codes are following:

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
    }
}

And the HTML is following:

...
<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>

解决方案

I think you can only use primitive types and String, so ensureTracking(Integer rideId) should be ensureTracking(int rideId).

这篇关于我无法从JavaScript调用一个机器人功能的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆