如何在 WebView URL 中添加前缀? [英] How to Add Prefix in WebView URL?

查看:30
本文介绍了如何在 WebView URL 中添加前缀?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的 WebView 中有一个 URL 字段,它工作正常,但我希望它添加一个前缀 ("https://www.google.com/search?q=") 每次我按下搜索按钮时都在网址中

I have a URL Field in my WebView, it works fine but i want it to add a prefix ("https://www.google.com/search?q=") in the url every time i press the search button

import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.webkit.CookieManager;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebSettings.PluginState;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ProgressBar;

public class MainActivity extends Activity {
private WebView webView;
private EditText urlEditText;
private ProgressBar progress;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

urlEditText = (EditText) findViewById(R.id.urlField);
webView = (WebView) findViewById(R.id.webView);
webView.setWebChromeClient(new MyWebViewClient());


CookieManager.getInstance().setAcceptCookie(true);//Enable Cookies
webView.getSettings().setJavaScriptEnabled(true);//Enable Java Script
webView.setWebViewClient(new HelloWebViewClient());
webView.loadUrl("http://www.google.com/"); //Set Home page
webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);//Remove ScrollBars
webView.getSettings().setDefaultFontSize(12);//Set Font Size
webView.getSettings().setLoadsImagesAutomatically(true);//Enable Image Loading
webView.getSettings().setPluginState(PluginState.ON);//Enable Flash
webView.setBackgroundColor(0x00000000);//Transparent Screen When Loading
  //webView.getSettings().setBuiltInZoomControls(true);//Set Zoom Controls 

webView.getSettings().setAppCacheMaxSize(1024*1024*8);//Set Cache (8mb)
String appCachePath =         getApplicationContext().getCacheDir().getAbsolutePath();//Set Cache (8mb)
webView.getSettings().setAppCachePath(appCachePath);//Set Cache (8mb)
webView.getSettings().setAllowFileAccess(true);//Set Cache (8mb)
webView.getSettings().setAppCacheEnabled(true);//Set Cache (8mb)
webView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);//Set Cache (8mb)


 //////888888888888888888888888888888888888888888888888888888888888888888888   

progress = (ProgressBar) findViewById(R.id.progressBar);
progress.setMax(100);

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);

            MainActivity.this.progress.setProgress(0);
        }
    }

    private boolean validateUrl(String url) {
        return true;
    }
});

}

private class MyWebViewClient extends WebChromeClient {
@Override
public void onProgressChanged(WebView view, int newProgress) {         
    MainActivity.this.setValue(newProgress);
    super.onProgressChanged(view, newProgress);
 }
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

public void setValue(int progress) {
this.progress.setProgress(progress);       

/////88888888888888888888888888888888888888888888888888888888888888888888888
}
private class HelloWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView webview, String url)
{


webview.loadUrl(url);
return true;
}
}
@Override
 public boolean onKeyDown(int keyCode, KeyEvent event)
{

 if ((keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack())

{
webView.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
}

推荐答案

在按钮的 onClick() 方法中,只需将 url 和 query 连接起来即可.

In the onClick() method of the button, just concatenate url and the query.

    @Override
    public void onClick(View view) {
        String url = urlEditText.getText().toString();
        String prefix = "https://www.google.com/search?q=";
        if(!url.startsWith("http://") && !url.startsWith("https://"))
        {
            url = prefix + url;
        }
        if(url.endsWith(".com") || url.endsWith(".as") || url.endsWith(".uk") || url.endsWith(".biz"))
        {
            if(!url.startsWith("http://") && !url.startsWith("https://"))
            {
                url = "http://" + url;
            }
        }
        if (validateUrl(url)) {
            webView.getSettings().setJavaScriptEnabled(true);
            webView.loadUrl(url);

            MainActivity.this.progress.setProgress(0);
        }
    }

这篇关于如何在 WebView URL 中添加前缀?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆