可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
In my app i am using phonegap 2.6.For back button, I am using the following function
document.addEventListener("backbutton", onBackKeyDown, false); function onBackKeyDown() { alert("hello"); navigator.app.backHistory(); } document.addEventListener('deviceready', onDeviceReady, true);
The above function works fine when I click on the device's hardware back button. But when I click on the back button it is not working.
I have designed my back button as below:
But this button is working fine for this navigator.app.exitApp();
(application exit).
//Working Fine function onBackKeyDown() { navigator.app.exitApp(); } //Not Working function onBackKeyDown() { navigator.app.backHistory(); }
but not working for navigator.app.backHistory();
.
回答1:
I have tried 3 separate things when I faced the same situation:
Individually, none of these solve the problem. I put all 3 things together and much to my surprise it worked. I really don't know what is behind it.
Then I decreased to two functions and removed:
Now I am using this function and it is working fine.
//Works Fine function onBackKeyDown() { history.go(-1); navigator.app.backHistory(); }
回答2:
If you use the attribute data-rel="back" on an anchor, any clicks on that anchor will mimic the back button, going back one history entry and ignoring the anchor's default href.
回答3:
it depends where you are: on my windowsphone 8.1 lumia 925, it works history.go(-1);, while navigator.app.backHistory(); causes an exception before crashing.
On my Android (I believe the majority), navigator.app.backHistory(); works properly.
回答4:
Solved! Stop getting "TypeError: navigator.app is undefined"
A function I created that will first check what device you're on and then apply the relevant script:
function onBackKeyDown() { var userAgent = navigator.userAgent || navigator.vendor || window.opera; if (userAgent.match(/iPad/i) || userAgent.match(/iPhone/i) || userAgent.match(/iPod/i)) { // IOS DEVICE history.go(-1); } else if (userAgent.match(/Android/i)) { // ANDROID DEVICE navigator.app.backHistory(); } else { // EVERY OTHER DEVICE history.go(-1); } }
Call function by adding this to your back link/button:
onclick="onBackKeyDown()"