我正在显示这个网站的"https://www.egkhindi.com/"在我的应用程序主页上使用这个代码
MainActivity.java
package com.example.appthree;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Window;
import android.webkit.WebView;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String Htmlurl = "https://www.egkhindi.com/";
WebView view = (WebView) this.findViewById(R.id.webView);
view.getSettings().setJavaScriptEnabled(true);
view.loadUrl(Htmlurl);
}
}
这是很好的,但当我点击应用程序上的任何链接,一个外部浏览器上来加载该链接。是否有任何修复加载每个外部链接在我的应用程序?
为此,您必须创建webViewController类来在应用程序webview中加载视图
在你的代码中做如下修改
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String Htmlurl = "https://www.egkhindi.com/";
WebView view = (WebView) this.findViewById(R.id.webView);
view.getSettings().setJavaScriptEnabled(true);
view.setWebViewClient(new webViewController()); // added webViewController here
view.loadUrl(Htmlurl);
}
// Webview Controller to handle view inside app webview
private static class webViewController extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url); // to loading view inside webview and return true
return true;
}
}
}
我希望这对你有帮助。
为你的webView使用这个设置:
芬兰湾的科特林:
view.webViewClient = object : WebViewClient() {
override fun shouldOverrideUrlLoading(view: WebView?, request: WebResourceRequest?): Boolean {
view.loadUrl(url)
return true
}
}
java:
view.setWebViewClient(new mWebViewClient());
private static class mWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url); // to loading view inside webview and return true
return true;
}
}