如何在我的应用程序中打开网页?

这是我的第一个问题。 我知道这个问题之前已经被问过了,但是我没有find一个答案/解决方案来真正解释像我这样的新手的答案。

我正在创建一个具有很多按钮的线性布局的应用程序,每个按钮都应该将用户驱动到不同的网页。 按钮效果很好,每个按钮都转到其特定的网页,但在默认的浏览器,而不是在应用程序。

这是我的webview.xml文件:

 

这是WebViewActivity.java文件:

 public class WebViewActivity extends Activity { private WebView webView; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.webview); webView = (WebView) findViewById(R.id.webView1); webView.getSettings().setJavaScriptEnabled(true); webView.loadUrl( "http://egy-tech-droid.blogspot.com.eg/search/label/%D8%AA%D8%B7%D8%A8%D9%8A%D9%82%D8%A7%D8%AA%20%D8%AD%D8%B5%D8%B1%D9%8A%D8%A9"); } 

我在Manifest文件中添加了Internet权限:

   

这将打开网页,但在设备的默认浏览器,我想它打开我的应用程序。 任何帮助? (请给我一个详细的答案/解释)

将此添加到您的代码中

 webView.setWebViewClient(new WebViewClient(){ @Override public boolean shouldOverrideUrlLoading(WebView view, String url){ view.loadUrl(url); return true; } }); 

您需要设置WebViewClient以覆盖该行为(使用Web浏览器打开链接)。

用这个;

 webview.setWebViewClient(new WebViewClient()); 

Android文档说:

公共无效setWebViewClient(WebViewClient客户端)

设置将接收各种通知和请求的WebViewClient。 这将取代当前的处理程序。

享受完整的代码:

Oncreate():

  webView = (WebView) findViewById(R.id.webView1); if(Constants.isNetworkAvailable(mContext)){ webView.setWebViewClient(new MyWebViewClient()); webView.setWebChromeClient(new WebChromeClient() ); webView.getSettings().setJavaScriptEnabled(true); webView.getSettings().setPluginState(PluginState.ON); webView.getSettings().setBuiltInZoomControls(true); webView.getSettings().setSupportZoom(true); webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY); webView.setScrollbarFadingEnabled(false); webView.setInitialScale(30); webView.loadUrl(url); }else{ Toast.makeText(mContext, Constants.msgNoInternet, Toast.LENGTH_LONG).show(); } 

MyWebViewClient:

 private class MyWebViewClient extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); if (!pDialog.isShowing()) { pDialog.show(); } return true; } @Override public void onPageFinished(WebView view, String url) { //view.loadUrl(url); System.out.println("on finish"); if (pDialog.isShowing()) { pDialog.dismiss(); } } } 

我希望这能帮到您。

在你的网页视图布局中:

        

Webview按钮Onclick:

 webbutton = (ImageView) findViewById(R.id.web); webbutton.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { Intent intent = new Intent(getApplicationContext(), WebViewActivity.class); startActivity(intent); } }); 

Webview活动:

 public class WebViewActivity extends Activity { private WebView webViewurl; ImageView back; AndroidInterface AMW = AndroidInterface.GetInstance(); public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.webview); back = (ImageView) findViewById(R.id.backbutn); webViewurl = (WebView) findViewById(R.id.webView1); webViewurl.getSettings().setJavaScriptEnabled(true); webViewurl.getSettings().setBuiltInZoomControls(true); final Activity activity = this; webViewurl.setWebViewClient(new WebViewClient() { public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { Toast.makeText(activity, description, Toast.LENGTH_SHORT).show(); } }); webViewurl.loadUrl("http://example.com"); back.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub finish(); } }); } 

Sunny的答案是Kotlin版

 webView.webViewClient = object : WebViewClient() { override fun shouldOverrideUrlLoading(view: WebView?, request: WebResourceRequest?): Boolean { view?.loadUrl(request?.url.toString()) return true } } 

WebView myWebView =(WebView)findViewById(R.id.webview); myWebView.loadUrl(“ http://www.google.co.in ”);

这个代码工作正常…

上面的代码打开您的应用程序中的链接。