博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
webview页面和壳通信的库(精简版)
阅读量:6405 次
发布时间:2019-06-23

本文共 2436 字,大约阅读时间需要 8 分钟。

// PG精简版(function() {    var PG = {            iosBridge: null,            callbackId: 0,            callbacks: [],            commandQueue: [],            commandQueueFlushing: false        },        ua = navigator.userAgent,        isIOS = (ua.indexOf("iPhone") > -1 || ua.indexOf("iPad") > -1 || ua.indexOf("iPod") > -1) ? true : false;    PG.getAndClearQueuedCommands = function () {        var commandQueue_json = JSON.stringify(PG.commandQueue);        PG.commandQueue = [];        return commandQueue_json;    };    PG.exec = function(method, callback, args) {        var callbackId = '';        if (typeof(callback) == "undefined") {            callback = null;        }        if (typeof(args) == "undefined") {            args = {};        }        if (callback && typeof(callback) == 'function') {            callbackId = method + PG.callbackId++;            PG.callbacks[callbackId] = callback;        }        var obj = {            Method: method,            CallbackId: callbackId,            Args: args        };        if (isIOS) {            if (PG.iosBridge == null) {                PG.iosBridge = document.createElement("iframe");                PG.iosBridge.setAttribute("style", "display:none;");                PG.iosBridge.setAttribute("height", "0px");                PG.iosBridge.setAttribute("width", "0px");                PG.iosBridge.setAttribute("frameborder", "0");                document.documentElement.appendChild(PG.iosBridge);            }            PG.commandQueue.push(JSON.stringify(obj));            if (!PG.commandQueueFlushing) {                PG.iosBridge.src = 'pg://ready';            }                                } else if (window.comjs) {            // android            window.comjs.notify('pg://' + encodeURIComponent(JSON.stringify(obj)));        } else {            console.log("非ios或android平台,不合适吧");        }    };    PG.callback = function(callbackId, args) {        if (PG.callbacks[callbackId]) {            try {                var temp = decodeURIComponent(args),                    obj = JSON.parse(temp);                PG.callbacks[callbackId](obj);            } catch (e) {                console.log("Error in success callback: " + callbackId + " = " + e);            }            delete PG.callbacks[callbackId];        }    };                if (typeof(window) === "object" && typeof(window.document) === "object") {        window.PG = PG;    }            })();

 

转载地址:http://lnnea.baihongyu.com/

你可能感兴趣的文章
memcache数据库和redis数据库的区别(理论)
查看>>
第三十九天
查看>>
论程序员加班的害处
查看>>
基于HTML5的WebGL设计汉诺塔3D游戏
查看>>
WPF资料链接
查看>>
再次更新
查看>>
利用Windows自带的Certutil查看文件MD5
查看>>
开篇,博客的申请理由
查看>>
[JSOI2008]星球大战starwar BZOJ1015
查看>>
Shell编程-环境变量配置文件
查看>>
Struts2和Spring MVC的区别
查看>>
git代码冲突
查看>>
git bash 风格调整
查看>>
HDOJ-1010 Tempter of the Bone
查看>>
日本开设无人机专业,打造无人机“人才市场”
查看>>
190行代码实现mvvm模式
查看>>
兼容几乎所有浏览器的透明背景效果
查看>>
Linux VNC server的安装及简单配置使用
查看>>
阿里宣布开源Weex ,亿级应用匠心打造跨平台移动开发工具
查看>>
Android项目——实现时间线程源码
查看>>