为了账号安全,请及时绑定邮箱和手机立即绑定

JavaScript警报在Android WebView中不起作用

JavaScript警报在Android WebView中不起作用

ibeautiful 2019-10-28 14:53:24
在我的应用程序中,我正在使用WebView,而我正在使用JavaScript alert( )方法,但方法不起作用,没有弹出窗口出现。在清单文件中我添加了<uses-permission android:name="android.permission.INTERNET"></uses-permission>在活动文件中我添加了mWebView = (WebView) findViewById(R.id.webview);mWebView.getSettings().setJavaScriptEnabled(true);mWebView.loadUrl("file:///android_asset/demo.html");在布局xml文件中,我添加了<WebView     android:id="@+id/webview"    android:layout_width="fill_parent"    android:layout_height="fill_parent"/>任何线索如何启用全JavaScript中WebView?更新资料谢谢标记文件中的alert()方法html现在正在工作:)。现在有两个问题WebView:1:我正在<textarea>加载的html文件中使用a WebView,并尝试在其中使用印地语语言字体,但是当我尝试写印地语文本时,它显示为符号(如矩形符号[])。当我在台式机上的Firefox浏览器中执行相同操作时,效果很好。任何线索如何给多语言支持textarea的WebView?2:当我单击“提交”并尝试alert()在另一个Java脚本中的方法中打开text的值时,它不起作用,这是否意味着即使WebChromeClient 仅将其适用于当前加载的html页面并且未javascripts从该页面调用,也是如此?
查看完整描述

3 回答

?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

以下代码将起作用:


private WebView mWebView;

final Activity activity = this;


// private Button b;

@Override

public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

    mWebView = (WebView) findViewById(R.id.webview);

    mWebView.getSettings().setJavaScriptEnabled(true);

    mWebView.getSettings().setDomStorageEnabled(true);

    mWebView.setWebChromeClient(new WebChromeClient() {

        public void onProgressChanged(WebView view, int progress) {

            activity.setProgress(progress * 1000);

        }

    });


    mWebView.loadUrl("file:///android_asset/raw/NewFile1.html");

}


查看完整回答
反对 回复 2019-10-28
?
慕标5832272

TA贡献1966条经验 获得超4个赞

正如其他人指出的那样,需要设置WebChromeClient才能alert()开始工作。只需设置默认的WebChromeClient()就足够了:


mWebView.getSettings().setJavaScriptEnabled(true);

mWebView.setWebChromeClient(new WebChromeClient());

感谢您下面的所有评论。包括约翰史密斯(John Smith)在内,他指出您需要启用JavaScript。


查看完整回答
反对 回复 2019-10-28
?
噜噜哒

TA贡献1784条经验 获得超7个赞

webView.setWebChromeClient(new WebChromeClient() {

    @Override

    public boolean onJsAlert(WebView view, String url, String message, JsResult result) {

        return super.onJsAlert(view, url, message, result);

    }

});


查看完整回答
反对 回复 2019-10-28
  • 3 回答
  • 0 关注
  • 706 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信