Ich erstellte eine grundlegende Webview-App Anweisungen aus dem Web folgen. alles funktioniert gut, mit Ausnahme der Backpress-Taste, wenn Webview mit Server-Backpress auf Home-Bildschirm verbunden, aber wenn ich die Home-in-Menü-Elemente (Suche und überpage) klickte die App geschlossen. Hier ist mein CodeAndroid onBackPressed Problem
MainActivity.java
package com.dijitalyayincim.cekmekoy.cekmekoy_web;
import android.app.ActionBar;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.graphics.Bitmap;
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.ProgressBar;
public class MainActivity extends AppCompatActivity {
private WebView webView;
private boolean isRedirected;
private ProgressBar progress;
String url = "file:///android_asset/www/index.html";
String url1 ="http://www.cekmekoy.info/index.php?option=com_sppagebuilder&view=page&id=12";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//setContentView(R.layout.aa);
webView = (WebView) findViewById(R.id.webView);
startWebView(webView, url);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
finish();
return true;
case R.id.action_info:
Element adsElement = new Element();
adsElement.setTitle("Advertise with us");
View aboutPage = new AboutPage(this)
.isRTL(false)
.setImage(R.drawable.logo_cekmekoy)
.addItem(new Element().setTitle("Version 1.0"))
.addItem(adsElement)
.addGroup("Bize Ulaşın")
.addEmail("[email protected]")
.addWebsite("http://www.cekmekoy.info/")
.addFacebook("cekmekoyinfo")
.addTwitter("cekmekoyinfo")
.addYoutube("UCYt3Z595jctz5oUhg0SMLqQ")
.addInstagram("cekmekoy_info")
.create();
setContentView(aboutPage);
setTitle("Bize Ulaşın");
return true;
case R.id.action_search:
setContentView(R.layout.test);
webView = (WebView) findViewById(R.id.search);
startWebView(webView, url1);
setTitle("Arama");
default:
// If we got here, the user's action was not recognized.
// Invoke the superclass to handle it.
return super.onOptionsItemSelected(item);
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu, menu);
return true;
}
private void startWebView(WebView webView,String url) {
webView.setWebViewClient(new WebViewClient() {
ProgressDialog progressDialog;
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url.startsWith("tel:")) {
Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse(url));
startActivity(intent);
view.reload();
return true;
}
view.loadUrl(url);
isRedirected = true;
return false;
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
isRedirected = false;
}
public void onLoadResource (WebView view, String url) {
if (!isRedirected) {
if (progressDialog == null) {
progressDialog = new ProgressDialog(MainActivity.this);
progressDialog.setMessage("Yükleniyor...");
progressDialog.show();
}
}
}
public void onPageFinished(WebView view, String url) {
MainActivity.this.setTitle(view.getTitle());
try{
isRedirected=true;
if (progressDialog.isShowing()) {
progressDialog.dismiss();
progressDialog = null;
}
}catch(Exception exception){
exception.printStackTrace();
}
}
});
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl(url);
}
@Override
public void onBackPressed() {
if(webView.canGoBack()) {
webView.goBack();
} else {
super.onBackPressed();
}
}
}
i wirklich zu schätzen, wenn Sie
dank helfen ...
Also, was willst du? Poste deutlich. –
Dies ist korrekt, da bei Such- oder Infoaktionen ein neuer Inhalt auf das Aktivitätslayout gesetzt wird und dieser mit der Webansicht verknüpft ist, die nur die erste Seite enthält, die nicht zur Startseite zurückkehren kann. So wird es auf der Rückseite gemäß Ihrem Code geschehen. Überprüfen Sie, indem Sie eine weitere Aktion auf der gesuchten oder Info-Web-Ansichtsseite ausführen, indem Sie eine weitere Seite öffnen und dann die Taste drücken. –
Entschuldigung, wenn ich überaboutpage (menuitem) und Suchseite (menuitem) zurückdrücke, möchte ich, dass es auf die Homepage geht und dann, wenn erneut komprimiert, exit – bahmet