Ionic APP-Web SPA开发进阶(二)Ionic进阶之路由去哪了

Ionic进阶之路由去哪了

项目需求

在查看药品时,从药品列表中可以通过点击药品列表获取某一药品详情。提交订单时,同样可以查看药品详情。两种情形下,从药品详情返回后,应分别返回至原来的页面。如下图所示。

Ionic APP-Web SPA开发进阶(二)Ionic进阶之路由去哪了     Ionic APP-Web SPA开发进阶(二)Ionic进阶之路由去哪了 
  Ionic APP-Web SPA开发进阶(二)Ionic进阶之路由去哪了

现状是第一次添加的药品从提交订单路由至订单详情,但却不可以从药品详情返回至提交订单页面,而是返回到了药品列表中,但是在第二次点击后,却可以正确返回至订单提交页面。

通过阅读代码发现并没有手动添加返回路由的情况,返回的轨迹应该是Ionic内部实现的。但是两次返回的路由却不一致令人费解。反过来想想,最起码问题是有规律可循的。所以问题还是应该可以得到解决的。

尝试通过监听返回键的方式进行,在相应的条件语句中加入监听语句并进行判断。返回键退出的代码如下:

/*
 * Android返回键退出
 */
$scope.listenbackbutton = function() {
document.addEventListener("plusready", onPlusReady, false);

function onPlusReady() {
plus.key.addEventListener("backbutton", function() {
if ($location.path() == '/tab/index') {
if (plus.os.name == "Android") {
$ionicLoading.show({
template: "再次点击返回键退出立马送药"
});
$timeout(function() {
$ionicLoading.hide();
plus.key.removeEventListener("backbutton", function() {
});
return;
}, 1000);
plus.key.addEventListener("backbutton", function() {
localStorage.addrTag = '';
localStorage.addrid = '';
plus.runtime.quit();
});
} else {
outSet("此平台不支持直接退出程序,请按Home键切换应用");
}
} else {
$ionicHistory.goBack();
}

});
}
}
$scope.listenbackbutton();

经过尝试,发现问题。onPlusReady() 方法无法调用。即不可以正常调用扩展API。

故放弃这条路。尝试通过其它方法进行解决(未完待续...)。

美文美图

Ionic APP-Web SPA开发进阶(二)Ionic进阶之路由去哪了

上一篇:c语言贪吃蛇详解5.GameOver功能与显示成绩


下一篇:TypeScript:基本类型和接口