h5与原生app交互的方法

<template>

</template>

<script>
export default {
    data() {
        return {}
    },

    created(){
        /**
         * 安桌调用web端onFunction方法
         * @param str
         * @returns {string}
         */
        window.onFunction = function (str) {
            alert(str)
            return '这是onFunction方法的返回值'
        }

        /**
         * ios回调web的方法
         * @param str
         * @returns {string}
         */
        window.onFunctionIOS = function(str){
            alert(str)
            return 'onFunctionIOS执行完成'
        }
    },

    methods: {
        /**
         * 将数据传给安桌端
         */
        webSendAndroid() {
            window.AndroidJSBridge.androidTestFunction1('调用安桌里的方法将web端将有参数传入')
        },

        /**
         * 获取安桌端的返回值
         */
        getAndroidSendWeb() {
            let result = window.AndroidJSBridge.androidTestFunction2()
            alert(result)
        },

        /**
         * 将数据传给ios
         */
        webSendIos(){
            let obj = {
                'msg':'web端传的参数'
            }
            window.webkit.messageHandlers.iosTestFunction1.postMessage(obj)
        },


        /**
         * 获了ios返回的数据
         */
        getIosSendWeb(){
            window.webkit.messageHandlers.iosTestFunction2.postMessage({})
        },



        //web与原生交互
        //判断当前的项目标是运行在Android设备还是ios
        init(){
            if(window.androidJSBridge){

            }else if(window.webkit){

            }
        },

        /**
         * 调用android注册接口
         */
        onRegisterToAndroid(){
            //json字符串
            let userJson = JSON.stringify({
                'userName':this.userName,
                'password':this.password
            })
            //调用android注册方法,接收他的返回值
            let result = window.androidJSBridge.register(userJson)
            //对返回值进行处理
            this.onRegisterCallback(result)
        },

        /**
         * 调用IOS注册接口
         */
        onRegisterToIos(){
            //ios可以直接接收对象类型的数据
            let userObj = {
                'userName':this.userName,
                'password':this.password
            }

            /**
             * ios不能直接返回返回值,所以ios操作完成之后会回调地应的回调方法.
             * 同时原生调用js的方法只能使调用绑定到window对象中的方法
             * 所以我们需要把ios操作完成之后的回调方法(registerCallback)绑定到window对象中
             */
            window.registerCallback = this.onRegisterCallback;

            //调用ios注册方法
            window.webkit.messageHandlers.iosTestFunction1.postMessage(userObj)
        },

        /**
         * 用来处理Native注册接口的近回值
         */
        onRegisterCallback(result){

            if(result){
                alert('注册成功');
            }else{
                alert('注册失败,请重试')

            }
        },
		
		
		/**
       * 将数据传给安桌端
       */
      webSendAndroid() {
        window.AndroidJSBridge.androidGetWebData('调用安桌里的方法将web端将有参数传入')
      },

      /**
       * 获取安桌端的返回值
       */
      getAndroidSendWeb() {
        let result = window.AndroidJSBridge.webGetAndroidData()
        alert(result)
      },

      /**
       * 将数据传给ios
       */
      webSendIos(){
        let obj = {
          'msg':'web端传的参数'
        }
        window.webkit.messageHandlers.iosGetWebData.postMessage(obj)
      },


      /**
       * 获了ios返回的数据
       */
      getIosSendWeb(){
        window.webkit.messageHandlers.webGetIosData.postMessage({})
      },



    }
}

</script>

<style>

</style>
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值