クロームバージョン61または62で正常に動作しますが、私はバージョン63にアップデートしたときに私のwebview
が履歴を保存しないとwebView.canGoBack()
は常にfalse
を返しwebview
私のAndroidアプリ。しかし、以前のバージョンのChromeではうまく動作します。の解き方?問題更新クロームの安定版63
2
A
答えて
0
でも、私はこの問題に直面していました。今のところ、ouldOverrideUrlLoading(WebView view、String url){}関数でintentを使用でき、super.onbackpressed()は履歴を保持するためにその作業を行います。
public boolean shouldOverrideUrlLoading(WebView view, String url) {
Intent intent = new Intent(MainActivity.this, MainActivity.class);
intent.putExtra("postUrl", url);
startActivity(intent);
return true;
}
2
この問題は、クロムのバグである必要があります。私たちはアプリで同じ問題を見つけました。この問題の原因は、shouldOverrideUrlLoadingメソッドでWebviewのloadUrlメソッドを呼び出すことです。そのとき、webviewはクロムのいくつかのバージョンに戻ることはできません。以下のコードは私の回避策です:
public class WebViewBugFixDemo extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// todo : set your content layout
final WebView webView = (WebView) findViewById(R.id.webview);
final String indexUrl = "http://www.yourhost.com";
final String indexHost = Uri.parse(indexUrl).getHost();
webView.loadUrl(indexUrl);
webView.setWebViewClient(new WebViewClient() {
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (isSameWithIndexHost(url, indexHost)) {
return false;
}
view.loadUrl(url);
return true;
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP && request != null && request.getUrl() != null) {
String url = request.getUrl().toString();
if (isSameWithIndexHost(url, indexHost)) {
return false;
}
view.loadUrl(url);
return true;
}
return super.shouldOverrideUrlLoading(view, request);
}
});
}
/**
* if the loadUrl's host is same with your index page's host, DON'T LOAD THE URL YOURSELF !
* @param loadUrl the new url to be loaded
* @param indexHost Index page's host
* @return
*/
private boolean isSameWithIndexHost(String loadUrl, String indexHost) {
if (TextUtils.isEmpty(loadUrl)) {
return false ;
}
Uri uri = Uri.parse(loadUrl) ;
Log.e("", "### uri " + uri) ;
return uri != null && !TextUtils.isEmpty(uri.getHost()) ? uri.getHost().equalsIgnoreCase(indexHost) : false ;
}
}
+0
これはこの[BUG](http://crbug.com/794020)と関連しています。 回避策が動作し、確認済みです。 'loadUrl()'で追加のヘッダを追加するために使用します。 この回避策では対応できません。 – hQuse
関連する問題
- 1. Three.js - クローム新しい更新問題
- 2. 任意のバージョンから最新の安定版に更新
- 3. 最新の安定版Oracle Application Express
- 4. 安定版イオン2を更新する方法
- 5. gitのリモートタグを更新する(最新の安定版をマークする)
- 6. Pdfmake.jsのmozillaブラウザの問題(最新版)
- 7. .NET CORE安定版
- 8. SwisscomDev/Cloudfoundryで不安定版/不安定版を解決する
- 9. 安定版のPhpSpreadsheet(PhpExcel)
- 10. ケトル4.0.1の安定コミュニティ版
- 11. アルゴリズム - 安定結婚問題
- 12. クロームCSS対Firefoxは問題
- 13. ConstraintLayout安定版ですか?
- 14. 更新問題
- 15. ASP.NET Web API(ベータ版)は最新のMono(安定版)で動作しますか?
- 16. Hyperledger Fabricの最新の安定版は何ですか?
- 17. いいえcv.Point in Python最新の安定版DebianのOpenCV
- 18. 新しいXcodeベータ版の新しい問題:MKGeodesicPolyline
- 19. 最新の安定版を入手する
- 20. xDebugの安定性の問題
- 21. LGV30の画像安定化の問題
- 22. クロームCSSの背景色の問題
- 23. クロームのXMLHttpRequest POSTエンコードの問題
- 24. バグの更新版
- 25. トリッキー更新問題
- 26. クエリ更新問題
- 27. Java DOM xml版の問題
- 28. Saxon 8(Java版)の問題
- 29. Angular2安定版のmd入力バインディングエラー
- 30. リンクサーバーの更新の問題
私の場合は無限に新しいインテントを作成します。 – hQuse