从一个机器人活动调用javascript函数 [英] calling javascript function from an android activity

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

问题描述

我婉打电话从一个机器人活动的JavaScript函数,但它似乎并没有工作。 我已经使用了Android的WebView功能webview.loadUrl(JavaScript的:函数()); 这是我的Andr​​oid code:

 包com.example.web;

进口android.os.Bundle;
进口android.app.Activity;
进口android.view.Menu;
进口android.webkit.WebView;

公共类MainActivity延伸活动{

    的WebView的WebView;
    INT I = 30;
    @覆盖
    保护无效的onCreate(包savedInstanceState){
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.activity_main);

        的WebView =(web视图)findViewById(R.id.webView1);
        webview.getSettings()setJavaScriptEnabled(真)。
        webview.loadUrl(文件:///android_asset/index.html);
        webview.loadUrl(JavaScript的:改变(我));

    }

    @覆盖
    公共布尔onCreateOptionsMenu(功能菜单){
        //充气菜单;这增加了项目操作栏,如果它是present。
        。getMenuInflater()膨胀(R.menu.activity_main,菜单);
        返回true;
    }

}
 

这是我的html code:

 < HTML>
<身体GT;
< D​​IV ID =TEXTA>文字< / DIV>
<脚本>

功能改变(NUM){
的document.getElementById(TEXTA)的innerHTML = NUM​​。
}

< / SCRIPT>

< /身体GT;
< / HTML>
 

解决方案

很可能您的网页不完全你要执行JavaScript时加载。你可以试试:

  webView.setWebViewClient(新WebViewClient(){

   公共无效onPageFinished(web视图查看,字符串URL){
        view.loadUrl(JavaScript的:改变(我));
    }
});
 

I wan to call a javascript function from an android activity but it doesn't seem to work. I have used the android webview function webview.loadUrl("javascript:function()"); This is my android code:

package com.example.web;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.webkit.WebView;

public class MainActivity extends Activity {

    WebView webview;
    int i=30;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        webview = (WebView)findViewById(R.id.webView1);
        webview.getSettings().setJavaScriptEnabled(true);
        webview.loadUrl("file:///android_asset/index.html");
        webview.loadUrl("javascript:change(i)");

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }

}

This is my html code:

 <html>
<body>
<div id="texta">text</div>
<script>

function change(num){
document.getElementById("texta").innerHTML=num;
}

</script>

</body>
</html>

解决方案

It's likely your page isn't fully loaded by the time you're trying to execute the javascript. Can you try:

webView.setWebViewClient(new WebViewClient() {

   public void onPageFinished(WebView view, String url) {
        view.loadUrl("javascript:change(i)");
    }
});

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

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