起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 19136|回复: 13

[结贴] justep.Shell.showPage()打开页面会自动返回当前页面

  [复制链接]

8

主题

29

帖子

61

积分

初级会员

Rank: 2

积分
61
QQ
发表于 2016-1-20 18:13:03 | 显示全部楼层 |阅读模式
我有一个index.w,login.w,main.windex.w的js:
  1. define(function(require) {
  2.         var $ = require("jquery");
  3.         var justep = require("$UI/system/lib/justep");
  4.         var ShellImpl = require('$UI/system/lib/portal/shellImpl');

  5.         var Model = function() {
  6.                 this.callParent();
  7.                 var shellImpl = new ShellImpl(this, {
  8.                         "contentsXid" : "pages",
  9.                         "pageMappings" : {
  10.                                 main : {
  11.                                         url : this.transUrl('./main.w')
  12.                                 },
  13.                                 news : {
  14.                                         url : this.transUrl('./channel/news.w')
  15.                                 },
  16.                                 notice : {
  17.                                         url : this.transUrl('./channel/notice.w')
  18.                                 },
  19.                                 mail : {
  20.                                         url : this.transUrl('./channel/mail.w')
  21.                                 },
  22.                                 flow : {
  23.                                         url : this.transUrl('./channel/flow.w')
  24.                                 },
  25.                                 login : {
  26.                                         url : this.transUrl('./login.w')
  27.                                 }
  28.                         }
  29.                 });
  30.         };

  31.         Model.prototype.modelLoad = function(event) {
  32.                 justep.Shell.showPage("login");
  33.         };

  34.         Model.prototype.transUrl = function(url) {
  35.                 return require.toUrl(url);
  36.         };

  37.         return Model;
  38. });
复制代码
打开login.w后正常,然后我登录验证成功后打开打开main.w
login.w打开main.w的JS代码:
  1. justep.Shell.showPage("main",{
  2.                 userId:"20255",
  3.                 userName:"刘亚东"
  4.         });       
复制代码
问题来了,这里打开后,main.w页面显示一下,又自动退回到login.w页面,然后再次登录就正常,也就是说第一次打开main.w页面的时候就会自动返回,再次登录就可以了,这里说一下main.w是用 微网模版2  。请问这个是什么原因呢。
继续说,从main.w打开其他的页面就都正常的,只有登录这一步不正常。
还有顺带问一个问题,我登录成功后怎么释放login.w页面,就是不能返回到这个页面了。我打开main.w页面后用justep.Shell.closePage("login");关闭这个页面没有效果,还是可以返回。


8

主题

29

帖子

61

积分

初级会员

Rank: 2

积分
61
QQ
 楼主| 发表于 2016-1-20 18:16:23 | 显示全部楼层
刚刚我又想了一下,如果一开始打开main.w页面,在某个地方检查客户是否登录,没有登录再自动跳转到login.w页面登录,我试了试,我在main.w页面的load事件写或者参数接收事件写代码,或者Model里面写这样main.w页面都会闪一下,再打开login.w页面。有没有什么好的方法,这种登录页面一般怎么做的。
我想要的结果就是,一开始打开程序自动检查是否自动登录,如果不自动登录就跳转的login.w页面登录。
回复 支持 反对

使用道具 举报

发表于 2016-1-21 09:23:28 | 显示全部楼层
刘亚东 发表于 2016-1-20 18:16
刚刚我又想了一下,如果一开始打开main.w页面,在某个地方检查客户是否登录,没有登录再自动跳转到login.w ...

你可以把用户的信息存储在本地,比如localStorage或者 sqlite
第一次要shell跳转到到mian.w页面,在onLoad事件中,判断是否登陆,如果没有登陆,就是用windowDialog组件弹出登陆页面,登陆后再回到主页!!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

8

主题

29

帖子

61

积分

初级会员

Rank: 2

积分
61
QQ
 楼主| 发表于 2016-1-22 12:41:55 | 显示全部楼层
liangyongfei 发表于 2016-1-21 09:23
你可以把用户的信息存储在本地,比如localStorage或者 sqlite
第一次要shell跳转到到mian.w页面,在onLo ...

我刚才按照这种方式做了,不过有点问题,就是main.w用windowDilang打开login.w后,在从login.w跳转回来跳不回来了.
main.w页面的onload事件里面的代码:
  1. Model.prototype.modelLoad = function(event){                               
  2.                 //如果没有登录就跳转到登录页面
  3.                 debugger;               
  4.                 if(window.localStorage.getItem("loginName")==null){                       
  5.                         this.comp("windowDialogLogin").open();                       
  6.                 }       
  7.                
  8.                 //判断是否手机运行
  9.                 //if (justep.Browser.isX5App) {
  10.                 //        CommonUtils.attachDoubleClickExitApp(function() {
  11.                 //                return true;                               
  12.                 //        });
  13.                 //}               
  14.         };
复制代码

login.w打开main的代码:
  1. function openmain(){
  2.          window.localStorage["loginName"]="lyd";
  3.          //this.comp("windowDialogmain").open();
  4.          justep.Shell.showPage("main");
  5.        
  6. }
复制代码

用windowDialog打开也不行,用shell打开也不行,就是代码执行了,页面没变化
回复 支持 反对

使用道具 举报

发表于 2016-1-22 14:44:07 | 显示全部楼层
刘亚东 发表于 2016-1-22 12:41
我刚才按照这种方式做了,不过有点问题,就是main.w用windowDilang打开login.w后,在从login.w跳转回来跳 ...

windowDialog 直接调用this.owner.close()
关闭当前弹出的页面就可以了啊!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

8

主题

29

帖子

61

积分

初级会员

Rank: 2

积分
61
QQ
 楼主| 发表于 2016-1-28 17:16:37 | 显示全部楼层
liangyongfei 发表于 2016-1-22 14:44
windowDialog 直接调用this.owner.close()
关闭当前弹出的页面就可以了啊!

以解决,谢谢。
回复 支持 反对

使用道具 举报

5

主题

38

帖子

68

积分

初级会员

Rank: 2

积分
68
QQ
发表于 2016-8-8 12:00:37 | 显示全部楼层
能分享一下代码吗?
回复 支持 反对

使用道具 举报

66

主题

254

帖子

682

积分

高级会员

Rank: 4

积分
682
QQ
发表于 2016-12-20 09:27:37 | 显示全部楼层
能分享一下代码吗???
不要仰望别人,自己亦是风景
回复 支持 反对

使用道具 举报

53

主题

928

帖子

1730

积分

金牌会员

Rank: 6Rank: 6

积分
1730
发表于 2016-12-31 16:13:39 | 显示全部楼层
有个疑问!!!你这样还是相当于是在页面的JS内做的登录验证啊!!!这样非常非常非常非常非常不安全啊!!!
稍微懂一点点JS  都能在前端修改页面的JS代码绕过登录验证,直接跳转到后台管理去的啊!!!
承接wex5开发web项目、微信页面等;
低费用进行零散功能开发(java、JS、微信各种接口、阿里云接口等)
QQ:459349489
回复 支持 反对

使用道具 举报

1

主题

7

帖子

21

积分

新手上路

Rank: 1

积分
21
QQ
发表于 2017-1-18 00:18:08 | 显示全部楼层
兄弟 你是怎么解决的啊?求助啊?QQ1481525178
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-11-24 06:50 , Processed in 0.058221 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表