2017-10-18 85 views
0

我在WebView中有一個網站的鏡像,我希望當我按下智能手機上的** Back **按鈕時,我會回到上一頁。目前,如果我按智能手機上的**返回**按鈕,應用程序將被最小化(它保留在後臺)。 我不知道該怎麼做,任何人都可以幫助我嗎?Android - WebView後退按鈕

MainActivity

import android.support.v7.app.AppCompatActivity; 
 
import android.os.Bundle; 
 
import android.webkit.WebSettings; 
 
import android.webkit.WebView; 
 
import android.webkit.WebViewClient; 
 

 
public class MainActivity extends AppCompatActivity { 
 

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

 
     WebView wv = (WebView) findViewById(R.id.webview1); 
 
     wv.loadUrl("https://www.xxxx.com.br"); 
 
     wv.setWebViewClient(new WebViewClient()); 
 

 
     WebSettings ws = wv.getSettings(); 
 
     ws.setJavaScriptEnabled(true); 
 
     ws.setSupportZoom(false);

艙單

<uses-permission android:name="android.permission.INTERNET" /> 
 
    <application 
 
     android:allowBackup="true" 
 
     android:icon="@mipmap/ic_launcher" 
 
     android:label="@string/app_name" 
 
     android:roundIcon="@drawable/ic_stat_name" 
 
     android:supportsRtl="true" 
 
     android:theme="@style/AppTheme"> 
 

 
     <activity android:name=".MainActivity"> 
 

 
      <intent-filter> 
 
       <action android:name="android.intent.action.MAIN" /> 
 

 
       <category android:name="android.intent.category.LAUNCHER" /> 
 

 

 
      </intent-filter> 
 
     </activity> 
 
    </application> 
 

 
</manifest>

+0

嗨,我是新來的社區。對不起,我不知道如何使用搜索功能。 刪除此主題的過程是什麼,因爲您發佈的主題有助於解決問題:如果在WebView中按下,如何返回上一頁? – Ever

回答

0

重寫onBackPressed方法如下的活動:

@Override 
public void onBackPressed(){ 
    WebView wv = (WebView)findViewById(R.id.webview1); 
    if(wv.canGoBack()){ 
     wv.goBack(); 
    } else { 
     super.onBackPressed(); 
    } 
} 

用上面的方法類裏面,不在外面。

public class MainActivity extends AppCompatActivity { 

    //onCreate method 

    //onBackPressed method 

    //other methods 

} 
+0

返回錯誤: _錯誤:(31,12)錯誤:類,接口或枚舉expected_ _Error:執行失敗的任務':app:compileDebugJavaWithJavac'。 >編譯失敗;有關詳細信息,請參閱編譯器錯誤輸出._ – Ever

+0

調整之後,它可以很好地工作。 – Ever

0

使用此。

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK && webView.canGoBack()) { 
     webView.goBack(); 
     return true; 
    } 
    return super.onKeyDown(keyCode, event); 
} 

添加wv全球數據

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

    wv = (WebView) findViewById(R.id.webview1); 
    wv.loadUrl("https://www.xxxxx.com.br"); 
    wv.setWebViewClient(new WebViewClient()); 

    WebSettings ws = wv.getSettings(); 
    ws.setJavaScriptEnabled(true); 
    ws.setSupportZoom(false); 

} 
+0

與返回的錯誤: _Error:(33,12)錯誤:類,接口,或枚舉expected_ _Error:執行失敗的任務 ':應用程序:compileDebugJavaWithJavac' ._ – Ever

+0

使用'wv',而不是'WebView'在你的代碼。它是'WebView'對象。 – KeLiuyue

+0

由於錯誤持續存在,我插入了上面的代碼 – Ever