android message 参数,关于android:WebChromeClient不显示onJsPrompt函数的“ message”参数...

我希望WebView像Web浏览器一样显示提示。

从其他针对alert()的答案中,我发现我必须在Java代码中执行以下操作:

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

WebSettings webSettings = myWebView.getSettings();

webSettings.setJavaScriptEnabled(true);

myWebView.addJavascriptInterface(new WebAppInterface(this),"Android");

// Next line was added

myWebView.setWebChromeClient(new WebChromeClient());

这有效,并且弹出提示,但是与其显示我传递给prompt()的消息,而是显示:

The page at"https:..." says:

在javascript中,我的通话如下所示:

prompt("Test")

因此,我希望提示符下说"测试"。

这完全打破了嵌入在应用程序中的WebView的沉浸感。 如何使WebChromeClient显示我实际传递的文本?

能否请您发布您尝试过的代码段?

@Asama我已将Java代码扩展到整个相关代码段,并添加了来自javascript的即时调用

检查我的答案...您需要创建对话框来设置自定义标题...

您需要在WebChromeClient下的onJsPrompt中创建一个AlertDialog,并附加一个EditText作为其视图,如下所示:

@Override boolean onJsPrompt (WebView view, String url, String message, String defaultValue, JsPromptResult result) {

final EditText input = new EditText(main);

input.setInputType(InputType.TYPE_CLASS_TEXT);

input.setText(defaultValue);

new AlertDialog.Builder(myApp)

.setTitle("App Titler")

.setView(input)

.setMessage(message)

.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int which) {

result.confirm(input.getText().toString());

}

})

.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int which) {

result.cancel();

}

})

.create()

.show();

return true;

}

我对onJSPrompt(提示)感兴趣,而不对onJSConfirm(警告)感兴趣

我以为我实际需要的是类似的东西,但是我需要的不是AlertDialog,而是实际获取并返回文本的东西,但是我看不到直接的类似物

类似于该问题的答案...似乎我仍然需要带有自定义视图的AlertDialog

您可以尝试将onJsConfirm替换为onPrompt代码,并按原样保留alertdialog。

编辑我的答案

编辑它以添加使文本输入部分正常工作的几行。 谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值