文档中心 > 店铺动态卡片-开发指引

千牛场景能力优化

更新时间:2023/02/02 访问次数:7553

一、背景

 

原先场景能力是由千牛客户端把event参数和对应的业务参数传参到启动参数里,由isv在启动时读取后再自主跳转;

这种方案优势是isv比较灵活,在读取到场景值后可以跳转二级页也可以切换tab;劣势需要执行isv逻辑,导致额外的页面渲染,增加渲染打开时长;

优化方案只建议isv在直接跳二级页的场景下使用,此方案下,从二级页点击返回,直接回到千牛页面,不回到小程序首页

 

二、ISV 配置

 

ISV通过在app.jsonwindow字段下,增加pageAliasMapping字段来指定跳转目标路径;业务参数仍然有目标路径页面去启动参数里读取。

 

{
  "pages": [
     "pages/index/index",
     "pages/detail/detail"  
   ],  
  "window": {
     "defaultTitle": "My App",
     "navigationBarForceEnable": true,
     "pageAliasMapping": {
       "tradeDetail": "pages/tradeDetail/tradeDetail",
       "tradeList": "pages/tradeList/tradeList"  
      }  
   } 
}


三、ISV兼容旧千牛方式

 

旧版千牛不会根据pageAliasMapping配置更新启动路径,所以isv需要保留原有的onLaunch的判断逻辑。但是需要增加判断是否启动路径已经是被映射过了,如果被映射过,则不需要再做跳转。一个典型的兼容代码如下。


onLaunch(options) {
  var query = options['query'];
  var event = query["event"];
  if (event == 'tradeList' || event == 'event_tradeList') {
     var startPage = options['path']  
       if (startPage == 'pages/myTradeList/myTradeList') {
         //已经在目标页面了,无需跳转  
       } else {
         //延续原先跳转逻辑
          my.redirectTo({  url: '/pages/myTradeList/myTradeList'  })  
       }  
  }  
},

 

四、测试方式


ISV在开发过程中,可以通过mock url的方式并生成二维码,扫码打开,让开发中的小程序有获得对应的场景参数,  生成mock url的形式如下,$miniAppUrl代表自己的小程序URL,可以来自IDE生成的二维码,{$miniAppUrl}&query=event%3DitemList%26itemStatus%3Donsale, 由于在千牛上是通过openPlugin过程中自动添加别名参数来实现,在测试过程中ISV可以自行在小程序url后增加pageAlias参数模拟直达。 例如,https://m.duanqu.com?_ariver_appid=3000000002058512&nbsv=0.1.1911251952.12&nbsource=debug&nbsn=DEBUG&query=event%3DitemList%26itemStatus%3Donsale&pageAlias=tradeList, 生成对应的二维码

 

五、支持版本


两端支持版本都是 8.4.0及以上。


FAQ

关于此文档暂时还没有FAQ
返回
顶部