我发现Android使用的是默认的浏览器,有时可能不是我所需要的。例如,我的应用程序的一个用户已经将管理管作为默认浏览器,并且无法下载文件。
Wy webview只显示一个Google文件,但是下载链接不适用于管理管.甚至可能是其他浏览器。
setContentView(R.layout.activity_web_view);
webView = findViewById(R.id.webViewResults);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setSupportMultipleWindows(true);
webView.getSettings().setAllowFileAccess(true);
webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
webView.loadUrl(drive_url + DriveCode + "/view");我只想忽略/重写默认浏览器。
//==
经过思考,我会让网页提供一个链接,而不是直接打开它.那我就可以
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
//select my action here
return false;
}意识到问题是自动运行window.open的--浏览器把它当作弹出窗口并阻止它。
发布于 2021-03-02 06:20:46
可以使用WebChromeClient,如下所示:
webView.setWebChromeClient(new WebChromeClient() {
@Override
public boolean onJsPrompt(WebView view, String url,
String message, String defaultValue, JsPromptResult result) {
if (callback != null) {
callback.onResult(message, new PromptResultImpl(result));
}
return true;
}
@Override
public boolean onConsoleMessage(ConsoleMessage consoleMessage) {
Log.d(JsBridge.TAG, consoleMessage.message());
return true;
}
});发布于 2021-03-02 06:35:38
您可以使用自定义的web视图客户端来覆盖打开的默认浏览器。在调用loadUrl()方法之前,尝试在下面设置为Web。
webView.setWebViewClient(new MyWebViewClient());
private class MyWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return false;
}
}https://stackoverflow.com/questions/66434221
复制相似问题