我有一个网站,我制作了移动版。现在,我想要的是在 Web 视图中打开 URL 并成功地完成了它,接下来我希望当用户登录或单击任何按钮时,它应该保留在 Web 视图中,而不是进入浏览器。我以前没有做过这种工作,所以我想知道是否可以做到。例如,如果网站有 4 个链接,那么当我单击任何链接时,它应该在 Web 视图中打开,但现在它会将其带到浏览器。
问问题
168 次
2 回答
0
我不知道您是如何构建的webView
,但如果您在实例化后使用以下行webView
,将解决您的问题。
<Your_WebView>.setWebViewClient(new WebViewClient());
于 2013-10-22T07:17:03.157 回答
0
这将帮助您:
http://javatechig.com/android/android-webview-example/
这是一个 android 默认行为,当从 WebView 中单击链接时,它会在默认的 android 浏览器中打开链接。如果我们想要这种烦人的特性,并且总是在浏览器字段中打开链接而不是重定向到默认浏览器,那么我们就拦截了点击事件。
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
import android.widget.EditText;
public class WebViewActivity extends Activity {
private WebView webView;
private EditText urlEditText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_webview);
urlEditText = (EditText) findViewById(R.id.urlField);
webView = (WebView) findViewById(R.id.webView);
webView.setWebViewClient(new MyWebViewClient());
Button openUrl = (Button) findViewById(R.id.goButton);
openUrl.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
String url = urlEditText.getText().toString();
if(validateUrl(url)){
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl(url);
}
}
private boolean validateUrl(String url) {
return true;
}
});
}
private class MyWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.web_view, menu);
return true;
}
}
于 2013-10-23T23:15:07.993 回答