在 Webview 中打开外部链接
Open External Links inside Webview
我想用 POST
数据打开一个 webview
。所以我这样做:
webView = (WebView) findViewById(R.id.dashboard);
String url = "http://www.example.test";
String postData = "json=" + JSON;
webView.postUrl(url, postData.getBytes());
所以现在当我启动这个 webview
时,点击链接会打开设备的默认浏览器,有什么方法可以坚持 webview
打开链接吗?
我研究过,但所有这些都是针对 GET
个请求。
所以我找到了 GET
和 POST
请求几乎相同的解决方案。
webView = (WebView) findViewById(R.id.dashboard);
String url = "http://www.example.test";
String postData = "json=" + JSON;
webView.postUrl(url,postData.getBytes());
webView.setWebViewClient(new WebViewClient() {
public boolean shouldOverrideUrlLoading(WebView viewx, String urlx) {
viewx.loadUrl(urlx);
return false;
}
});
以下是在 Kotlin 中的实现方法:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
myWebView.webViewClient = object : WebViewClient() {
override fun shouldOverrideUrlLoading(
view: WebView,
request: WebResourceRequest
): Boolean {
view.loadUrl(request.url.toString())
return false
}
}
} else {
myWebView.webViewClient = object : WebViewClient() {
override fun shouldOverrideUrlLoading(view: WebView?, url: String?): Boolean {
view?.loadUrl(url.toString())
return false
}
}
}
我想用 POST
数据打开一个 webview
。所以我这样做:
webView = (WebView) findViewById(R.id.dashboard);
String url = "http://www.example.test";
String postData = "json=" + JSON;
webView.postUrl(url, postData.getBytes());
所以现在当我启动这个 webview
时,点击链接会打开设备的默认浏览器,有什么方法可以坚持 webview
打开链接吗?
我研究过,但所有这些都是针对 GET
个请求。
所以我找到了 GET
和 POST
请求几乎相同的解决方案。
webView = (WebView) findViewById(R.id.dashboard);
String url = "http://www.example.test";
String postData = "json=" + JSON;
webView.postUrl(url,postData.getBytes());
webView.setWebViewClient(new WebViewClient() {
public boolean shouldOverrideUrlLoading(WebView viewx, String urlx) {
viewx.loadUrl(urlx);
return false;
}
});
以下是在 Kotlin 中的实现方法:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
myWebView.webViewClient = object : WebViewClient() {
override fun shouldOverrideUrlLoading(
view: WebView,
request: WebResourceRequest
): Boolean {
view.loadUrl(request.url.toString())
return false
}
}
} else {
myWebView.webViewClient = object : WebViewClient() {
override fun shouldOverrideUrlLoading(view: WebView?, url: String?): Boolean {
view?.loadUrl(url.toString())
return false
}
}
}