• hybrid混合开发之“一知半解”(下)


    话不多说直接奔入主题,了解了使用hybrid的原因,以及更新上线流程,我们在这里再说一下 js 如何与客户端通信。。

    schema协议

    使用:NgariHealth://直接打开纳里健康 app

    内置上线

    • 将封装的schema 协议打包,内置到客户端
    • 客户端每次启动 wenview,都默认执行打包好的 invoke.js
    • 本地加载,免去网络加载的时间,更快
    • 本地加载,没有网络请求,黑客看不到 schema 协议,更加安全
    • 通讯的基本形式:调用能力,传递参数,监听回调
    void function (window, undefined) {
        //调用 schema 协议
        function _invoke(action, data, callback) {
            //拼接 schema 协议
            var schema = 'myapp://utils/' + action
            //拼接参数
            schema += '?a=a';
            for (const key in data) {
                if (data.hasOwnProperty(key)) {
                    const element = data[key];
                    schema += '&' + key + '=' + element;
    
                }
            }
            // 处理 callback
            var callbackName = '';
            if (typeof callback === 'string') {
                callbackName = callback;
            } else {
                callbackName = action + Date.now();
                window[callbackName] = callback;
            }
    
            schema += 'callback=' + callbackName;
    
            var iframe = document.createElement('iframe');
            iframe.src = schema;
            var body = document.body;
            body.appendChild(iframe);
            setTimeout(()=>{
                body.removeChild(iframe);
                iframe = null;
            })
        }
        //暴露到全局变量
        window.invoke = {
            share: function (data, callback) {
                _invoke('share', data, callback);
            },
            scan: function (data, callback) {
                _invoke('share', data, callback);
            },
            login: function (data, callback) {
                _invoke('share', data, callback);
            },
        }
    }(window)
    

    总结

    • 通讯的基本形式:调用能力,传递参数,监听回调
    • 调用schema 代码的封装
    • 内置上线,更快,更安全
  • 相关阅读:
    可图性判定HavelHakimi定理
    并查集入门
    js数组和函数应用
    DOM用法及应用
    javascript基础知识
    表单
    PHP变量
    30天自制操作系统开发笔记——IDT中断描述符表
    《30天自制操作系统》学习笔记——汇编程序磁盘BIOS调用
    汇编指令: LGDT、LIDT、LLDT、LMSW、LOADALL、LOADALL286、LOCK、LODSB、LODSW、LODSD
  • 原文地址:https://www.cnblogs.com/D-Y-W/p/10576773.html
Copyright © 2020-2023  润新知