帖子
帖子
用户
博客
课程
显示全部楼层
3
帖子
0
勋章
9
Y币

[其他] 如何判断在apicloud环境中

[复制链接]
发表于 2019-3-22 19:58:30
请教在apicloud中, 如何判断在apicloud环境中, 试了好几种方法都不行
1, 入口html中, 加get参数 ?env=app
打开网络url时有用, 因为http协议支持get传参,
打开本地文件时, 用的是file协议, 不支持get传参

2,写cookie, 用sessionStorerage, loacalStoreage , 新开打的页面都取不到值

3,用duserAgent, IOS 下无效, 只要是一个平台下无效,该解决方案就等于无效

4,新页面判断window.apiready , 无效,判断不出来

5,有说用window.apiready 中判断,
首先那是个异步函数, 再者有些必要的初始化要根据环境来进行, 浏览器中不执行怎么办

难道就没个有效的办法判断出当前是否在apicloud中么
216
帖子
5
勋章
5909
Y币
api.一个模块或者什么的。有数据就是apicloud环境咯。
3
帖子
0
勋章
9
Y币
api. 需要 apiready 后才能执行判断,浏览器中根本不会执行apiready, 所以得提前知道是apicloud环境, 才能到ready中去判断, 提前知道了还用判断么
我要怎么知道这个环境是app呢
  1. const ENV = 'app'
  2. if( ENV === 'app'){
  3.   window.apiready = function() {
  4.     let app = {
  5.       sType : window.api.systemType, //系统类型
  6.       sVer : window.api.systemVersion, //系统版本
  7.       model : window.api.deviceModel, //设备型号
  8.       cType : window.api.connectionType, //网络状态
  9.     }
  10.    **.**mit('setDevice', { version: `${app.sType}${app.sVer} ${app.model}` })
  11.   
  12.     new Vue({
  13.       router,
  14.       store,
  15.       render: h => h(App),
  16.     }).$mount('#app')
  17.   }
  18. }else {
  19.   let version = getBrowserVersion()
  20. **.**mit('setDevice', { version })

  21.   new Vue({
  22.     router,
  23.     store,
  24.     render: h => h(App),
  25.   }).$mount('#app')
  26. }
复制代码

26
帖子
0
勋章
4903
Y币
  1. let isApicloud=api=='undefined';
复制代码
3
帖子
0
勋章
9
Y币

没用, 如果在apiready之外判断, 浏览器和apicloud都是false
67
帖子
2
勋章
601
Y币
您需要登录后才可以回帖 登录

本版积分规则