我有一个使用webview
创建的浏览器,但每当我在textfield
中输入内容并进行搜索时,它都会触发默认浏览器。
当我点击编辑文本字段来写东西时,点击google主页的searchbar
,键盘没有弹出,我必须按回按钮然后再次点击searchbar
谷歌的主页出现键盘。
public class Browser extends Activity {
private EditText urlText;
private Button goButton;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_browser);
WebView myWebView = (WebView) findViewById(R.id.webview0001);
myWebView.loadUrl("http://www.google.com");
myWebView.setWebViewClient(new WebViewClient());
myWebView.getSettings().setBuiltInZoomControls(true);
urlText =(EditText)findViewById(R.id.url_field);
goButton=(Button)findViewById(R.id.go_button);
goButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
openBrowser();
}
});
urlText.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if (keyCode==KeyEvent.KEYCODE_ENTER){
openBrowser();
return true;
}
return false;
}
});
}
public void openBrowser(){
Uri uri=Uri.parse(urlText.getText().toString());
Intent intent=new Intent(Intent.ACTION_VIEW,uri);
startActivity(intent);
}
}
答案 0 :(得分:0)
如果您希望WebView本身处理导航,则应调用WebView.loadUrl()而不是创建VIEW意图。这里的文档http://developer.android.com/reference/android/webkit/WebView.html可能有所帮助。
此外,您需要使用返回false
的实现来实现WebViewClient.shouldOverrideUrlLoading(请参阅http://developer.android.com/reference/android/webkit/WebViewClient.html#shouldOverrideUrlLoading(android.webkit.WebView,java.lang.String))。默认情况下,WebView会将URL导航(例如链接点击)传递给系统进行解析,并返回错误的停止行为。