您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> Android >> Android 嵌入 html页面,页面的javascript代码不能执行

Android 嵌入 html页面,页面的javascript代码不能执行

来源:网络整理     时间:2016/4/23 17:45:10     关键词:javascript,Android

关于网友提出的“Android 嵌入 html页面,页面的javascript代码不能执行”问题疑问,本网通过在网上对“Android 嵌入 html页面,页面的javascript代码不能执行”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题:Android 嵌入 html页面,页面的javascript代码不能执行
描述:

我按网上的方法,在Android 嵌入了一个 html页面,html 里面的button可以调用 android 的方法,android里面的button也可以调用 html 里面的 javascript函数, 问题是: html里面的js函数却不能正常调用,朋友们帮我看下问题在哪儿,本人新手。
Activity:


            mWebView = (WebView) findViewById(R.id.webview);
            WebSettings mWebSettings = mWebView.getSettings();
            //加上这句话才能使用javascript方法
            mWebSettings.setJavaScriptEnabled(true);
            
            //增加接口方法,让html页面调用
            mWebView.addJavascriptInterface(new Object() {
                    //这里可以正常调用
                    public void startBaidu() {
                     Uri uri = Uri.parse("http://www.baidu.com"); 
                     Intent it  = new Intent(Intent.ACTION_VIEW,uri); 
                     startActivity(it); 
                    }
            }, "demo");
            
            mWebView.loadUrl("file:///android_asset/login.html");
            
            //android 调用 html 的代码  //这里也可以正常调用
            mButton = (Button) findViewById(R.id.button);
            //给button添加事件响应,执行JavaScript的fillContent()方法
            mButton.setOnClickListener(new Button.OnClickListener() {
                    public void onClick(View v) {
                            mWebView.loadUrl("javascript:fillContent()");
                    }
            });

login.html:





@Override
            public boolean onJsAlert(WebView view, String url, String message, final JsResult result) {
                // return super.onJsAlert(view, url, message, result);
                Builder builder = new Builder(mContext);
                builder.setTitle(mContext.getText(R.string.dialog_tip_title));
                builder.setMessage(message);
                builder.setPositiveButton(android.R.string.ok, new AlertDialog.OnClickListener() {
                    public void onClick(DialogInterface dialog, int which) {
                        result.confirm();
                    }
                });
                builder.setCancelable(false);
                builder.create();
                builder.show();
                return true;
            }

重写这个方法,就像这样 把网页里的alert信息放到android里 解决方案2:

哦onJsAlert要返回true就可以了。还要类似的 onJsPrompt看看文档就行 都差不多。还有诸如webClient类也可以控制浏览器的许多行为。

解决方案3:

// webView.setWebChromeClient(new WebChromeClient()
// {
//
// @Override
// public boolean onJsAlert(WebView view, String url, String message,
// JsResult result)
// {
// System.out.println("url:" + url);
// return false;
// }
//
// });

解决方案4:

要对webView设置一下,webViewSetting里名字好像叫enableScripts方法

解决方案5:

Html的方式太慢了,交互性太差


以上介绍了“Android 嵌入 html页面,页面的javascript代码不能执行”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/799484.html

相关图片

相关文章