backbutton.js 1.2 KB
// 解决 关于HBuilder X打包的APP按返回键退出的问题
document.addEventListener('plusready', function() {
	var first = null;
	const webview = window.plus.webview.currentWebview();
	//自定义运行期返回
	const main = plus.android.runtimeMainActivity();
	//返回后台,但是不退出应用
	plus.runtime.quit = function() {
	    main.moveTaskToBack(false);
	};
	//监听返回按键
	plus.key.addEventListener("backbutton", function() { 
		//监听webview窗口是否可以返回
		webview.canBack(function(e) { 
		  if(e.canBack) {
			  //可以返回返回上一页面
			  // plus.navigator.back();
			  webview.back();
		  } else { 
			  //不可以返回
			  //处理逻辑:2秒内,连续两次按返回键,则退出应用;
			  //首次按键,提示再按一次退出应用
			  if (!first) {
				  first = new Date().getTime();
				  //通过H5+ API 调用Android 上的toast 提示框
				  plus.nativeUI.toast('再按一次退出应用', {
					duration: 'short'
				  }); 
				  setTimeout(function() {
					  first = null;
				  }, 2000);
			  } else {
				  if (new Date().getTime() - first < 2000) {
					  plus.runtime.quit();//退出app
				  }
			  }
		  }
		});
	}, false);
});