android调用JS代码

AfterSeptember 2014-05-05 01:40:38
项目要用到这个功能,之前也没搞过,写了一个简单的demo没效果。
就是在android中调用js中的一个函代码如下

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

webview = (WebView) findViewById(R.id.webview);
webview.getSettings().setJavaScriptEnabled(true);
webview.loadUrl("file:///android_asset/gg.html");

button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
webview.loadUrl("javascript:do()");
}
});
}



html文件如下

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>

<title>Test Demo</title>

<p>test</p>
<script language="javascript" type="html/text">

function do(){

alert("Test");

}

</script>

</head>


</html>
...全文
2798 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
驱梦人 2016-07-13
  • 打赏
  • 举报
回复
Android 可以直接引用js文件里的方法吗?还是只能引用html文件的js方法?
drlyee 2014-05-07
  • 打赏
  • 举报
回复
还有一点WebView 原生不支持alert方法,需要改造以后才能支持

/* WebChromeClient must be set BEFORE calling loadUrl! */
webview.setWebChromeClient(new WebChromeClient() {
    @Override
    public boolean onJsAlert(WebView view, String url, String message, final android.webkit.JsResult result)
    {
        new AlertDialog.Builder(myApp)
            .setTitle("javaScript dialog")
            .setMessage(message)
            .setPositiveButton(android.R.string.ok,
                    new AlertDialog.OnClickListener()
                    {
                        public void onClick(DialogInterface dialog, int which)
                        {
                            result.confirm();
                        }
                    })
            .setCancelable(false)
            .create()
            .show();

        return true;
    };
});
webview.loadUrl("file:///android_asset/gg.html");
大概就是这样,到百度再搜下webview alert 有好多解决方案
life169 2014-05-07
  • 打赏
  • 举报
回复

小问题
<script language="javascript" type="html/text"> 
应该换成
<script language="javascript" type="text/javascript"> 
Icehand哥 2014-05-05
  • 打赏
  • 举报
回复
路过。。。。帮你顶顶
未注销 2014-05-05
  • 打赏
  • 举报
回复
引用 1 楼 wuhanchendalong 的回复:
也不说出了什么问题?
对了,请教一下,为什么我在webview里面点击html里的那个button也没有反应?setJavaScriptEnabled(true);是设置可以执行js脚本吧。那应该会弹出对话框啊。
未注销 2014-05-05
  • 打赏
  • 举报
回复
引用 1 楼 wuhanchendalong 的回复:
也不说出了什么问题?
就是没反应啊。点击了button没反应。
wuhanchendalong 2014-05-05
  • 打赏
  • 举报
回复
也不说出了什么问题?

80,469

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧