如何在我的应用程序中打开网页?
这是我的第一个问题。 我知道这个问题之前已经被问过了,但是我没有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 ”);
这个代码工作正常…
上面的代码打开您的应用程序中的链接。
- Android Studio(Kotlin)GsonBuilder.registerTypeAdapter()给出2个错误
- Kotlin在Android Studio 3.0 Canary 2中使用Android DataBinding
- anko doAsync onComplete
- 错误从Kotlin资源获取xml
- 如何解释这个怪异的行为,当以编程方式将边距设置为RelativeLayout中的视图?
- RecyclerView onClick
- 如何animationanimation列表在Kotlin?
- 应用程序的伴随对象中的应用程序上下文和资源的静态引用
- 如何通过Kotlin在ListView中检查ID?