哈哈6
哈哈6
  • 发布:2023-07-26 11:15
  • 更新:2023-07-26 13:23
  • 阅读:605

怎么判断h5网页是在移动端浏览器中打开,还是在uniapp打包的app中打开的

分类:uni-app

怎么判断h5网页是在浏览器中打开,还是在app中打开的

2023-07-26 11:15 负责人:无 分享
已邀请:
DCloud_App_Array

DCloud_App_Array

User Agent中有Html5Plus、uni-app表示是在uni-app打包的App中:
https://uniapp.dcloud.net.cn/tutorial/app-useragent.html#%E9%BB%98%E8%AE%A4user-agent

  • 哈哈6 (作者)

    我打印出ua但是并没有看到uniapp相关标志啊,看上图

    2023-07-26 11:36

董路飞

董路飞 - 搜索小程序麻丝和 App 麻丝

这个呢 uni.getSystemInfoSync().platform

  • 哈哈6 (作者)

    不行,是访问外部的html,并不能从app中去更改信息

    2023-07-26 11:37

  • 哈哈6 (作者)

    就是说需要在外部的html中需要判断是否是uniapp打包的app中打开的网页,app中不需要做任何修改

    2023-07-26 11:39

人生不设限

人生不设限

如果是通过web-view加载的h5页面,最简单的就是在onLoad的时候判断window.plus是否存在,存在就是uniapp不存在就是其他环境

  • 哈哈6 (作者)

    我试了,是通过web-view加载的h5,但是window.plus 是undefined

    2023-07-26 11:53

  • 人生不设限

    回复 哈哈6:web-view没有配置plus禁止加载吧,默认是在页面loaded时注入,注入肯定需要时间,可以通过document.addEventListener('plusready', callback)监听plus监听成功,你要判断的话,可以大致间隔个一两秒再判断

    2023-07-26 12:04

  • 哈哈6 (作者)

    回复 人生不设限: function plusReady(){

    if(window.plus) {

    document.write('2222');

    }

    document.write('3333');

    }

    function brower() {

    if(window.plus){

    plusReady();

    }else{

    document.addEventListener('plusready',plusReady,false);

    }

    return '111';

    }


    document.write(brower());  

    我是这样写的但是根本就不会打印出222,333

    2023-07-26 12:09

  • 人生不设限

    回复 哈哈6: 为什么要用document.write呢?

    2023-07-26 14:18

1***@qq.com

1***@qq.com

<!-- #ifdef H5 -->  
<!-- #endif -->

这种的方法试过了吗

要回复问题请先登录注册