我使用WebView做了一个示例应用程序,在该Web视图中,URL来自Web服务.它工作正常,但如果我点击该WebView中的任何链接,它会自动转到默认的Web浏览器.但我想在我的应用程序Web视图中打开.这是我的代码:
WvBikeSite = (WebView) findViewById(R.id.wv_bikeWebsite);
wvBikeSite.loadUrl(getBundle.getString("www"));
Run Code Online (Sandbox Code Playgroud) 我试图在按下网站上的按钮时允许在 WebView 中打开一个新窗口。我尝试同时启用setJavaScriptCanOpenWindowsAutomatically和setSupportMultipleWindows,但按下按钮时仍然没有任何反应。
public class WebView extends AppCompatActivity {
android.webkit.WebView myWebView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_web_view);
myWebView = (android.webkit.WebView) findViewById(R.id.webview);
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setDomStorageEnabled(true);
webSettings.setUserAgentString("Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36");
webSettings.setAllowFileAccess(true);
webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
webSettings.setSupportMultipleWindows(true);
myWebView.loadUrl("https://somewebsite.com/");
}
@Override
protected void onSaveInstanceState(Bundle outState ) {
super.onSaveInstanceState(outState);
myWebView.saveState(outState);
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
myWebView.restoreState(savedInstanceState);
}
}
Run Code Online (Sandbox Code Playgroud)
我已阅读并尝试了以下建议的答案:
我认为此处链接的问题的答案可能不适用于我的情况,因为链接的问题正在讨论同一窗口内的弹出窗口,但我单击的按钮完全打开一个新窗口(我无法更改)。
有谁知道为什么setJavaScriptCanOpenWindowsAutomatically并且setSupportMultipleWindows不这样做以及我如何设置我的网络视图,以便它允许单击打开新窗口的按钮?