// 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;
} })();

webview页面和壳通信的库(精简版)的更多相关文章

  1. webview页面间的通信问题

    前提 记一次多页面开发. 开发需求时会对页面刷新(reload),返回到上一页(用户返回 / history.go()) 页面间的通信 sessionStorage保存本次会话的信息,同步到新页面或上 ...

  2. ip 淘宝ip库 精简版

    <?php header('Content-type: text/html; charset=utf-8'); //根据ip获取城市.网络运营商等信息 function findCityByIp ...

  3. Android WebView页面加载优化

    目前webapp越来越多,体验也越来越好,为了能够更好的使用WebView展示出流畅的的页面,可以从以下几点做优化: WebView缓存 资源文件本地存储 减少耗时操作 客户端UI优化 可能有人会说了 ...

  4. webview页面缩放 & 自适应

    0.webview页面自适应: // 1.LayoutAlgorithm.NARROW_COLUMNS : 适应内容大小// 2.LayoutAlgorithm.SINGLE_COLUMN:适应屏幕, ...

  5. iOS开发Safari调试WebView页面

    App混合开发现已是常态,不过作为app端开发人员,对H5页面的使用,可不能简单的局限于使用,一些简单的调试方法还是有必要了解的. 关于如何在使用webview过程中,如何对web内对内容进行调试,这 ...

  6. Chrome Inspect不显示Webview页面的问题总结

    首先,确保手机打开了USB调试.如果还是检测不到WebView页面,主要有以下几种情况. 1.反应慢,稍等一会 2.关闭然后重新打开USB调试开关,刺激一下chrome,我的魅族手机有时需要这样操作一 ...

  7. 微信小程序web-view页面安卓下显示空白的解决办法!!!

    web-view页面在你向地址拼接参数展示页面时,在安卓上有时会显示空白 解决方案: A: 普通不需要参数的话可以直接把地址写在src里,不要去在onLoad里获取你的全局变量后再赋值. B: 如果需 ...

  8. js 页面间的通信

    看了一下公司原来的代码,原页面ajax post返回一个页面完整的HTML,然后再打开一个新页面并输出ajax返回的所有代码到新页面上,在新页面上以表单提交的形式实现重定向. 任凭我想了半天也没想出来 ...

  9. SSE两个页面的相互通信

    两个页面之间互相通信 首先搭建express框架,然后通过two页面发送数据给服务器,服务器把数据传送给one页面 在two 中发送数据,在one中显示 router/index.js var axi ...

随机推荐

  1. SslUtil

    package com.eaju.util; import java.io.OutputStreamWriter;import java.net.URL;import java.net.URLConn ...

  2. linux设备驱动归纳总结(六):2.分享中断号【转】

    本文转载自:http://blog.chinaunix.net/uid-25014876-id-90837.html xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ...

  3. ch1:python3 查看版本号、安装目录和工作空间目录

    查看python版本: 每次打开python顶端会显示版本号 在程序中判断版本号可以通过import sys  sys.version 在dos下可以通过python -V查看 安装目录:C:\Pyt ...

  4. PHP和Java的主要区别有哪些呢?

    解释 PHP与Java作为两种截然不同的程序开发语言,无论是技术层面还是发展空间,亦或是市场份额占比,都有着不同的表现方式,理念上的不同导致了Java和PHP在Web应用开发上显示了不同的结果.若要一 ...

  5. 微信开放平台API开发资料

    微信大概两年前开启了微信公众平台的API供开发者使用,从账号登陆.消息发送.用户账号管理.公众号菜单.客服接口.微信商店接口.用户卡券接口 以及微信支付接口.可以说是全方面覆盖了电商所需要的要素,与阿 ...

  6. 集合(Collection)使用笔记

    Collections.unmodifiableCollection这个可以得到一个集合的镜像,它的返回结果不可直接被改变,否则会提示 java.lang.UnsupportedOperationEx ...

  7. dbms_job.submit 单次执行

    DBMS_JOB.SUBMIT用于定时任务,基本用法如下: DBMS_JOB.SUBMIT(:jobno,//job号                                      'yo ...

  8. SortedDictionary和SortedList

    使用上两者的接口都类似字典,并且SortedList的比如Find,FindIndex,RemoveAll常用方法都没提供. 数据结构上二者差异比较大,SortedList查找数据极快,但添加新元素, ...

  9. Linux 线程与进程,以及通信

    http://blog.chinaunix.net/uid-25324849-id-3110075.html 部分转自:http://blog.chinaunix.net/uid-20620288-i ...

  10. hiho 第119周 最大权闭合子图

    描述 周末,小Hi和小Ho所在的班级决定举行一些班级建设活动. 根据周内的调查结果,小Hi和小Ho一共列出了N项不同的活动(编号1..N),第i项活动能够产生a[i]的活跃值. 班级一共有M名学生(编 ...