Android WebView canGoBack always true
Android WebView canGoBack always true
我有一个正在加载社交媒体页面的WebView。我已经覆盖了"后退"按钮以调用 WebView 上的 goBack
方法,直到canGoBack()
返回false
。然后它调用super.onBackPressed()
.问题在于,Twitter和YouTube使用Javascript的方式是,除非你快速点击后退按钮4次,否则canGoBack()
会返回true
。
我尝试使用当前网址检查原始网址,但该页面的网址与传入的网址不同。
有谁知道一种方法可以让后退按钮调用 WebView 的goBack
方法,直到您处于开头,然后调用super.onBackPressed
?
我有类似的问题,但就我而言,问题是我在覆盖 WebViewClient 的 shouldOverrideUrlLoad() 时检查了 url 是否正确,如果是,我正在我的 webView 中加载该 url 并在不应该完成的操作之后返回 false。所以我只是返回 false,它开始正常工作。希望我帮助了某人。
好吧,这并不理想,但您可以使用数组(或只是一个要增加和减少的整数)手动跟踪导航历史记录,并在每次更改时将当前 url 推送到其中,并在按下后退按钮时弹出最后一个 url,如果数组为空(或整数为 0),则调用super.onBackPressed()
。
若要在 url 更改时执行代码,可以boolean shouldOverrideUrlLoading (WebView view, WebResourceRequest request)
重写 WebViewClient
(文档链接)。
这样,网页的javascript就不会干扰你处理后退按钮的方式。
- 如何在angularJS中编辑时,如果DB中的值为true,则设置复选框,如果值为false,则取消选中复选框
- AngularJS-使用'true'属性
- JavaScript-切换“;全部检查”;复选框true/false
- location.reload(true)崩溃浏览器选项卡
- 指令的模板必须只有一个根元素:With restrict E&替换true
- JavaScript:只有当数组中的所有项都为true时才执行函数
- 对于loop.if-仅在经过所有间隔后返回true
- if(foo!==null)的计算结果为true,即使foo为null
- ngIf的计算结果始终为true
- 如果函数返回True,则显示Javascript按钮
- (false==false==true)怎么可能是真的
- Javascript If else 只返回 TRUE 或只返回 FALSE
- sails.js beforeCreate方法只接收required设置为true的模型属性
- 在$state.go之后执行$window.location.reload(true)
- 尝试简化检查对象键是否为true并将其推送到另一个对象
- 过滤器返回true或false
- 什么是'true'和'false'和'null'
- 如何使用选项useCSS set true为bxSlider加载onSlideAfter()事件
- 当我的条件为true时,显示一条弹出消息
- Android WebView canGoBack always true