H5页面与vue的客户端交互

工作中经常遇到一些奇怪的东西,我有个这样的需求,就是我写的vue项目被嵌套在别的h5项目页面下,so进入我的页面前需要判断他的h5页面有没有登录,这时候就需要我的客户端页面调用h5页面的登录方法。客户端页面(ios、安卓)两种都得交互h5页面,,,借助JavascriptBridge工具,前端对应的js代码
 因为我的项目是vue的,我一般把函数都转为箭头函数了。
<template>
 <div class="tel">
  <p>{{message}}aaasss</p>
  <button @click="callBackH5">与h5页面交互</button>
 </div>
</template>
<script>
/*判断客户端手机为ios还是安卓,放在Script中*/
let u = navigator.userAgent, app = navigator.appVersion;
let isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1; //安卓
let isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
export default {
    data(){
      return{
        message:'',
        dataCall:''
      }
    },
    mounted(){
      //$on给当前事件绑定一些事件监听
      this.$bus.$on('on-click',mes=>{
        this.message=mes
      })
    },
    created(){

    },
    methods:{
      /*这段代码是固定的,必须要放到js中,vue的就放在method */
      setupWebViewJavascriptBridge(callback) {
        if (window.WebViewJavascriptBridge) { return callback(WebViewJavascriptBridge); }
        if (window.WVJBCallbacks) { return window.WVJBCallbacks.push(callback); }
        window.WVJBCallbacks = [callback];
        var WVJBIframe = document.createElement('iframe');
        WVJBIframe.style.display = 'none';
        WVJBIframe.src = 'wvjbscheme://__BRIDGE_LOADED__';
        document.documentElement.appendChild(WVJBIframe);
        setTimeout(function() { document.documentElement.removeChild(WVJBIframe) }, 0)
      },
      callBackH5(){
        if(isIOS){
           this.setupWebViewJavascriptBridge((bridge) =>{
              //注册一个方法(方法名是“toLogin”),客户端进行调用(方法名也是“JS Echo”),responseCallback是回调函数
              // bridge.registerHandler('toLogin', function(data, responseCallback) {
              //     console.log("JS Echo called with:", data)
              //     responseCallback(data)
              // })
              //调用原生的方法toLogin
              bridge.callHandler('toLogin', this.dataCall,  (response)=> {
                  console.log("response:", response)
              })
          })
        }else if(isAndroid){
          window.WebViewJavascriptBridge.callHandler('toLogin', this.dataCall,  (response)=> {
                  console.log("response:", response)
              })

        }
      }

    }


}
</script>
<style scoped>
.tel{
  border: 1px solid rebeccapurple
}
</style>

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
即时通讯IM系统(H5+安卓+IOS)客户端 支持红包转账 朋友圈 附视频教程_大小434M 即时通讯IM系统(H5+安卓+IOS)客户端 支持红包转账 朋友圈 群聊和群聊红包 收藏功能 语音相册 视频通话 附视频教程 项目是开发一款社交APP,具体的参考QQ、微信上的功能,与QQ、微信不同的地方在于此项目有一栏游戏专区列表,在这个列表里列出了各个热门游戏简介及入口,用户通过这个入口进入游戏,对于用户来说,首先是可以用作生活或者工作社交,其次是可以用作游戏里面的社交关系。 项目背景: 前端: 项目首先是一个APP,其次是能在其他平台上能够上线,基于公司情况,决定用 H5 开发Hybrid APP ,优点在于跨平台,一套代码多端运行,能有效节省开发周期,维护、升级、更新的工作量。且Hybrid APP 开发模式技术已经趋于成熟,性能、原生接口都有不错的体验,天猫、淘宝、京东等很多主流app大都采用这种开发模式,基于H5的Hybrid APP已经是行业趋势。 后端: 基于公司情况,大都擅长PHP,整个后端技术:PHP全系。考虑到社交类APP用户在线率、高并发、数据量庞大。 数据库方面: 要用到多个数据库联合,mysql 用作写,mongodb 用作读,实现读写分离,数据库合理设计,数据库水平切分。 缓存、集群、分布式、CDN基于情况上。 项目技术栈: 前端: 用Dcloud 的 uni-app全系,基于vue.js和微信小程序开发模式。 目前支持APP(android、ios)、H5、微信小程序、支付宝小程序5端。 在特定场景可以用weex进行原生渲染。 APP用的是Dcloud 公司的H5+进行原生接口调用。 后端: php 7.2.x thinkphp 5.1作HTTP服务(Nginx)。 getWanWork作socket服务(socket 数据交互方式是二进制数据格式)。 redis缓存,特定模块用sqllite缓存模块数据。 mysql、mongodb 数据库。 JWT进行用户验证。 使用 http 进行发送文件
对于移动端H5登录页面Vue2实现,可以参考Vue-Mobile这个项目。Vue-Mobile是基于Vue-cli实现的移动端H5开发模板,已经搭建好了基本的开发框架,可以帮助您快速开发移动端H5应用。项目使用的技术栈包括Vue、Vux、Axios和Less,并且提供了功能丰富的模板代码。您可以在该项目的GitHub地址找到源码。 另外,如果您想使用Vue.js3版本来实现移动端H5登录页面,可以考虑使用基于Vue.js3和TypeScript脚本的手机H5框架。该框架使用了Vant UI界面(兼容公众号和小程序),并且封装了网络交互单元和Axios拦截等功能,以便简化开发流程。该框架的目标是设计一个简单、易用的移动端手机App[2]。 参考资料: Vue-Mobile项目源码地址:https://github.com/Michael-lzg/vue-mobile 手机H5框架基于Vue.js3版本的简单登录页面实现<span class="em">1</span><span class="em">2</span> #### 引用[.reference_title] - *1* [详解搭建一个vue-cli的移动端H5开发模板](https://download.csdn.net/download/weixin_38730201/13135443)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [简单好用的移动端H5框架,Vue3、TypeScript,VantUI界面,OneMobileWeb](https://download.csdn.net/download/sky56it/19838982)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值