我已经为一个给定的WebView激活了JavaScript,并在WebView内部打开新的链接,而不是在浏览器中。 这是主要活动
package com.Afrogfx.pronouns;
import android.os.Bundle;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.view.Menu;
import android.webkit.WebView;
@SuppressLint("SetJavaScriptEnabled")
public class MainActivityPronouns extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_activity_pronouns);
WebView wvHtml = (WebView) findViewById(R.id.webview);
wvHtml.getSettings().setBuiltInZoomControls(true);
wvHtml.getSettings().setJavaScriptEnabled(true);
wvHtml.loadUrl("http://afrogfx.com/appcatcategories.php?catid=13&parentid=11");
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main_activity_pronouns, menu);
return true;
}
}
我如何处理我的代码,在WebView(应用程序)中打开网站中的所有链接,而不是在浏览器中打开& (不要向用户显示在浏览器中打开)。
为此,只需创建扩展webclient的子类,并使用该类的onPageFinished(WebView c,String url)方法和public boolean shouldOverrideUrlLoading(final WebView view, final String url)
下面是代码
myWebView.setWebViewClient(new WebViewClient()
{
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
//view.loadUrl(url);
System.out.println("hello");
return false;
}
});
myWebView.loadUrl(url);
在你使用Kotlin的情况下,你必须使用WebviewClicent。
webView.webViewClient = object : WebViewClient() {
override fun shouldOverrideUrlLoading(
view: WebView?,
request: WebResourceRequest?
): Boolean {
return false
}
}
所以你必须使用WebviewClicent.这里是类。
private class HelloWebViewClient extends WebViewClient
{
@Override
public boolean shouldOverrideUrlLoading(final WebView view, final String url)
{
Utils.showActivityViewer(WebsiteActivity.this);
new Thread(new Runnable()
{
public void run()
{
view.loadUrl(url);
}
}).start();
return true;
}
}
并在webview中绑定为
webview.setWebViewClient(new HelloWebViewClient());
并指 http:/developer.android.comreferenceandroidwebkitWebViewClient.html。