- 从UIWebView到WKWebView替换历程(关于Js复杂交互)(二)
LiuffSunny
如果项目中没有与复杂的Js交互,那么就不用经历下面这个相对复杂的探索过程了.之前用webView与js交互-(void)webViewDidFinishLoad:(UIWebView*)webView{//设置javaScriptContext上下文self.jsContext=[webViewvalueForKeyPath:@"documentView.webView.mainFrame.jav
- C语言执行javascript代码
一路向后
原理:应用SpiderMonkey的js引擎可以执行javascript代码.1.添加头文件#include#include#include#include2.添加主函数intmain(intargc,char**argv){JSRuntime*RunTime=NULL;JSContext*ConText=NULL;JSObject*Global=NULL;jsvalrval;constchar*
- UIWebView为什么那样获取JSContext
小白猿
OC端初始化一个js执行上下文JSContext对象很容易,[[JSContextalloc]init]即可,但是在hybridapp中,通过这种方式初始化JSContext与承载页面的UIWebVIew并不是同一个js环境,因此我们需要获取UIWebView对应的JSContext。但是apple官方并未提供相关的方法,不过这边难不倒某些人,有些人发现,通过KVC的方式可获取UIWebView对
- OC与JS交互基于JavaScriptCore(UIWebView)
罗显友
准备工作:1.在创建UIWebView的类中,导入头文件:#import2.在webView的代理方法中的任意一个方法中创建JSContext对象,我一般是在finisLoad里面创建代理方法-(void)webViewDidStartLoad:(UIWebView*)webView;-(void)webViewDidFinishLoad:(UIWebView*)webView;创建JSConte
- 细谈hybrid模式中js与ios交互
小小Xcoder
JavaScriptCore(适用于UIWebview,具有模块化思想)JavaScriptCore库里主要包括JSContext、JSValue、JSExport等几个一般使用的就是列举的三个。关键有两步:获取js的运行上下文,将继承JSExport的模块注入js。JSContext是js的运行上下文,用来执行js代码;JSValue是JSContext执行后的返回结果,JSExport是用来将
- iOS与H5交互方案
小熊的故事啊
前言本文主要是为了iOS开发人员和H5开发的交互的方案iOS使用的是JavaScriptCore的官方框架H5使用的是vue框架接下来会分别展示iOS调用H5和H5调用iOS的方法,并附两端的代码H5调用iOS1.首先在iOS端注册事件,并处理回调#import//创建JSContext对象@property(nonatomic,strong)JSContext*context;//创建webvi
- iOS原生与跨平台开发
白水灬煮一切
目录1、JavaScriptCore系统原生交互框架2、ReactNative框架的优势3、Flutter框架的优势4、如何选择适合自己的跨端方案?1、JavaScriptCore系统原生交互框架总结来说,JavaScriptCore提供了前端与原生相互调用的接口,接口层上主要用的是JSContext和JSValue这两个类,【通过JSValue的evaluateScript方法、Block赋值c
- iOS中OC JavaScriptCore.framework框架的webView交互
Eric_JIU
iOSwebView交互js交互
iOS7之后苹果公司引入了JavaScriptCore.framework提供了更好的,快捷的,简单的js交互框架。但是iOS8之后苹果公司提供了WKWebView以更好的交互,但是这个不支持JavaScriptCore.framework框架的,以下是我学习的一点感悟与心得,如若写的不到位或者有不对的地方欢迎大家指出!现在咱们切入主题:JavaScriptCore中类及协议:JSContext:
- webView怎么实现JS调原生(html使用window.iosDelegate.方法名(参数)调用原生方法)
哈皮吖
ios随笔JSExport
具体操作如下:1、创建一个UIViewController如:PublicServerViewController2、引入#import3、代理4、声明@property(nonatomic,strong)UIWebView*webView;@property(nonatomic,strong)JSContext*jsContext;5、初始化UIWebView-(UIWebView*)webVi
- jspatch原理简析
Adam_潜
在startEngine函数中,给jscontext定义了一个方法context[@"_OC_defineClass"]=^(NSString*classDeclaration,JSValue*instanceMethods,JSValue*classMethods){returndefineClass(classDeclaration,instanceMethods,classMethods);
- 快速学会Hybrid开发
delims
初次听到oc与js交互时,你可能会觉得这是一种高深的技术,其实不然,它并不高深,也很好学,oc与js交互还有另外一个很高大上的名字叫Hybrid开发。苹果提供了一个JavaScriptCore框架,用于oc与js交互,里面主要有这几个类JSContext:给JavaScript提供运行的上下文环境JSValue:JavaScript和Objective-C数据和方法的桥梁JSManagedValu
- OC与JS互相调用
稳_4ed5
OC调用JS得到JSContext对象。这个对象可以通过webView得到[webViewvalueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"]或者通过JSContextcontext=[[JSContextalloc]init];[contextevaluateScript:[selfloadJsFile]];获取
- JSBridge
他亲爱的爸爸
前端
在Hybrid模式下,H5会经常需要使用Native的功能,比如打开二维码扫描、调用原生页面、获取用户信息等,同时Native也需要向Web端发送推送、更新状态等,而JavaScript是运行在单独的JSContext中(Webview容器、JSCore等),与原生有运行环境的隔离,所以需要有一种机制实现Native端和Web端的双向通信,这就是JSBridge:以JavaScript引擎或Web
- PWA系列 - Web Workers 线程模型
rewq123
前言本文是Chromium官方设计文档BlinkWorkers主旨内容的翻译,介绍ServiceWorker在内核层面的一些基本概念和线程模型。一Worker类型WebWorkers是一个Web平台特性,它提供了后台JScontext,和允许任何脚本运行在后台,通常运行在一个独立的线程。Blink实现了几类worker:dedicatedworker:专用worker,只能被创建它的JS访问。创建
- WebViewJavascriptBridge
上冬十二
最近一直在忙,今天抽空写一下H5和Native的交互一、选择项目本身webview使用的是WKWebview,其实WKWebview自带的messageHandle也可以满足此需求JSContext,源自于JavaScriptCore框架中的东西,最后不使用此方案源于一下几点但是其中繁杂的字符串使用,让我觉的可能会由于粗心出现不可预知的错误加载时机的问题,当你重新loadrequest的时候,会导
- iOS热更新探究
贝灬小晖
在任意方法前后注入代码的能力,可能的话最好还能替换掉。调用任意类/实例方法的能力。使用JSContext开一个接口然后进行oc方法的调用聊聊热更新numberOfSections(in:)所以现在有了两套热更新的方案JSPatch使用JSContext开一个接口,使用Aspect切面的调用方法二期:看jspatch脚本下方与使用在Mac终端上执行openssl,再执行以下三句命令,生成PKCS8格
- UIWebview使用jsContext获取上下文失效
幽玄727
JavaScriptCore在实际项目中的使用的坑因为我的项目支持ios7+,我采用了JavaScriptCore框架实现的OC与JS的通信先说说我在实际项目开发中遇到的坑。具体问题可以看这篇文章的说明:使用javascriptcore框架后,UIWebView中页面跳转后,用JSExport绑定的方法无法调用对遇到的技术问题我的解题思路是:了解原理--分析原因--对症下药在分析原因之前我们先了解
- JSContext实用
cmjdmx
通过JSContext来加载javascript代码,可以通过JSValue来实用js的中的方法,可以进一步扩展到跨平台方法实用,入贷款、金融交易工具的开发JSContext*context=[[JSContextalloc]init];[contextevaluateScript:@"varname_adasf='wqwqw';vartextName='1232';functionaddFunc
- koa源码笔记(二)
ITgecko
context.jscontext.js里面放的就是用于新建上下文对象的原型代码。除了一个处理错误的onerror方法以外,主要用了一个delegates模块,进行属性和方法的绑定。比如:delegate(proto,'response').method('attachment').method('redirect').method('remove').method('vary').method(
- Objective-C与JavaScript交互
itzhaolei
原理图简言JSContext的实例对象可以桥接两个执行环境,可以通过该实例使两个环境进行交集(类似桥梁般的存在,又称上下文对象)依赖系统库Objective-C向JavaScript传值Objective-C实现内容//在webViewDidFinishLoad:代理方法里获取上下文,如有需要可进行强引用JSContext*jsContext=[webViewvalueForKeyPath:@"d
- WKWebView
金玉游龙
WKWebView是获取不到JSContext的,所以不能用JavaScriptCore进行交互。和js交互要用WKScriptMessageHandler协议方法//MARK:-WKNavigationDelegate//该代理提供的方法,可以用来追踪加载过程(页面开始加载、加载完成、加载失败)、决定是否执行跳转//页面跳转的代理方法有三种,分为(收到跳转与决定是否跳转两种)//剩下三个代理方法
- JS和OC交互
咔咔尼亜
JavaScriptCore和原生页面交互主要主要总结一下利用JavaScriptCore和UIWebView交互过程中遇到的问题。分三部分讲解JS调用原生OC调用JS传值JSContext可以将它视为一个盒子(字典),盒子中装了所有的webview加载的网页的代码(和H5的document对象好像),通过这个JSContext对象可以拿到盒子中的任意一个元素或者JS方法(通过方法名字符串),JS
- 关于iOS中JS与本地交互的方案优化与实现
a_只羊
优化由来开发中或多或少都会碰到网页中js与原生代码的交互内容,当然处理的方式也有很多种,比如拦截、JavaScriptCore等进行内容的交互,而这次想记录的主要就通过JavaScriptCore进行交互的方案。image.png如上图所示,通常通过JavaScriptCore进行内容的交互主要分为三步:继承JSExport协议,将需要交互的方法声明在协议里创建JSContext所对应的交互对象,
- Swift 与 JavaScript 的交互(通过 JavaScriptCore)
PierceDark
前言此篇参考自iOS开发-Swift使用JavaScriptCore与JS交互作者:天秤vs永恒实践通过JavaScriptCore来实现Swift和JS的交互。一、JavaScriptCore中的类JSContext:JSContext是JS的执行环境,通过evaluateScript()方法可以执行JS代码JSValue:JSValue封装了JS与ObjC中的对应的类型,以及调用JS的API等
- Vue与iOS的通信
_imp_
iOSUIWebView加载Vue的Html页面(JavaScriptCore):iOS调用Vue方法Vue的方法给原生调用,则需要把方法挂在window下面:image.png在iOS中这样调用Vue的方法,如下:image.png或者定义JSContext属性,在UIWebViewDelegate的代理方法里:image.png然后用context来调用js方法:image.pngVue调用i
- QWebChannel实现与JS的交互
杯子和盘子
在利用Qt框架的QWebEngineView进行嵌入浏览器开发时,可以很方便的通过QWebChannel实现与js的交互,本节内容简单讲解js向Qt应用程序发送消息,实现对本地程序notepad的调用。要实现js向Qt应用程序发送消息,可以分如下几步:1.创建自己的C++交互类:用于接收消息的接口必须定义为publicslots:,以供js调用:jscontext.h#ifndefJSCONTEX
- DHWKWebviewJavascriptAdapter 仿JSContenx的WKWebview中间件桥接
Daniel_King
DHWKWebviewJavascriptAdapter仿照JSContext的处理方式,适用于WKWebview的JS中间件处理优点:优雅的替换UIWebview的JSContext中间件简单易用,耦合性低集成方式pod'DHWKWebviewJavascriptAdapter'使用方法创建继承DHJavascriptExport的协议再创建中间件并遵循该协议#import"DHWKWebvie
- 2018-08-15关于iOS JSContext 失效问题
浪高达
这个时代,真正的技术博客太少了,都是到处抄袭,想找答案,找思路,搜索10个文章,9个是一样的,抄就不能加点自己理解吗。前段时间app中接了网页支付的业务(会跳转到其他支付应用),没太怎么注意JSContext跳转后会失效的问题,后面改版才发现。网上有几种方案,各有各的说法,但是应用到目前的项目中是不符合的,方案有二:一,js判断是否拿到注入的类,如果拿不到js重新加载(???跟没说一样)二,每次跳
- swift&JS交互 - JavaScriptCore
joeal
swift&JS交互-JavaScriptCore自从iOS7之后Apple退出JavaScriptCore,极大的方便了iOS与H5的联系。一、JavaScriptCore主要类JSContext:JSContext是JS的执行环境,通过evaluateScript()方法可以执行JS代码JSValue:JSValue封装了JS与ObjC中的对应的类型,以及调用JS的API等JSExport:J
- Android 下的 QuickJS Binding 库特性使用详解
目录特性依赖使用创建JSContext执行JavaScript支持的Java类型属性设置属性获取编译和执行字节码ESModule模块加载和执行同步GitHub地址:quickjs-android-wrapper特性支持Java和JavaScript类型互转支持Promise异步执行支持字节码编译和执行支持模块加载执行内置console.log实现统一的JavaScript异常处理依赖reposit
- 关于旗正规则引擎中的MD5加密问题
何必如此
jspMD5规则加密
一般情况下,为了防止个人隐私的泄露,我们都会对用户登录密码进行加密,使数据库相应字段保存的是加密后的字符串,而非原始密码。
在旗正规则引擎中,通过外部调用,可以实现MD5的加密,具体步骤如下:
1.在对象库中选择外部调用,选择“com.flagleader.util.MD5”,在子选项中选择“com.flagleader.util.MD5.getMD5ofStr({arg1})”;
2.在规
- 【Spark101】Scala Promise/Future在Spark中的应用
bit1129
Promise
Promise和Future是Scala用于异步调用并实现结果汇集的并发原语,Scala的Future同JUC里面的Future接口含义相同,Promise理解起来就有些绕。等有时间了再仔细的研究下Promise和Future的语义以及应用场景,具体参见Scala在线文档:http://docs.scala-lang.org/sips/completed/futures-promises.html
- spark sql 访问hive数据的配置详解
daizj
spark sqlhivethriftserver
spark sql 能够通过thriftserver 访问hive数据,默认spark编译的版本是不支持访问hive,因为hive依赖比较多,因此打的包中不包含hive和thriftserver,因此需要自己下载源码进行编译,将hive,thriftserver打包进去才能够访问,详细配置步骤如下:
1、下载源码
2、下载Maven,并配置
此配置简单,就略过
- HTTP 协议通信
周凡杨
javahttpclienthttp通信
一:简介
HTTPCLIENT,通过JAVA基于HTTP协议进行点与点间的通信!
二: 代码举例
测试类:
import java
- java unix时间戳转换
g21121
java
把java时间戳转换成unix时间戳:
Timestamp appointTime=Timestamp.valueOf(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()))
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:m
- web报表工具FineReport常用函数的用法总结(报表函数)
老A不折腾
web报表finereport总结
说明:本次总结中,凡是以tableName或viewName作为参数因子的。函数在调用的时候均按照先从私有数据源中查找,然后再从公有数据源中查找的顺序。
CLASS
CLASS(object):返回object对象的所属的类。
CNMONEY
CNMONEY(number,unit)返回人民币大写。
number:需要转换的数值型的数。
unit:单位,
- java jni调用c++ 代码 报错
墙头上一根草
javaC++jni
#
# A fatal error has been detected by the Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00000000777c3290, pid=5632, tid=6656
#
# JRE version: Java(TM) SE Ru
- Spring中事件处理de小技巧
aijuans
springSpring 教程Spring 实例Spring 入门Spring3
Spring 中提供一些Aware相关de接口,BeanFactoryAware、 ApplicationContextAware、ResourceLoaderAware、ServletContextAware等等,其中最常用到de匙ApplicationContextAware.实现ApplicationContextAwaredeBean,在Bean被初始后,将会被注入 Applicati
- linux shell ls脚本样例
annan211
linuxlinux ls源码linux 源码
#! /bin/sh -
#查找输入文件的路径
#在查找路径下寻找一个或多个原始文件或文件模式
# 查找路径由特定的环境变量所定义
#标准输出所产生的结果 通常是查找路径下找到的每个文件的第一个实体的完整路径
# 或是filename :not found 的标准错误输出。
#如果文件没有找到 则退出码为0
#否则 即为找不到的文件个数
#语法 pathfind [--
- List,Set,Map遍历方式 (收集的资源,值得看一下)
百合不是茶
listsetMap遍历方式
List特点:元素有放入顺序,元素可重复
Map特点:元素按键值对存储,无放入顺序
Set特点:元素无放入顺序,元素不可重复(注意:元素虽然无放入顺序,但是元素在set中的位置是有该元素的HashCode决定的,其位置其实是固定的)
List接口有三个实现类:LinkedList,ArrayList,Vector
LinkedList:底层基于链表实现,链表内存是散乱的,每一个元素存储本身
- 解决SimpleDateFormat的线程不安全问题的方法
bijian1013
javathread线程安全
在Java项目中,我们通常会自己写一个DateUtil类,处理日期和字符串的转换,如下所示:
public class DateUtil01 {
private SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
public void format(Date d
- http请求测试实例(采用fastjson解析)
bijian1013
http测试
在实际开发中,我们经常会去做http请求的开发,下面则是如何请求的单元测试小实例,仅供参考。
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.httpclient.HttpClient;
import
- 【RPC框架Hessian三】Hessian 异常处理
bit1129
hessian
RPC异常处理概述
RPC异常处理指是,当客户端调用远端的服务,如果服务执行过程中发生异常,这个异常能否序列到客户端?
如果服务在执行过程中可能发生异常,那么在服务接口的声明中,就该声明该接口可能抛出的异常。
在Hessian中,服务器端发生异常,可以将异常信息从服务器端序列化到客户端,因为Exception本身是实现了Serializable的
- 【日志分析】日志分析工具
bit1129
日志分析
1. 网站日志实时分析工具 GoAccess
http://www.vpsee.com/2014/02/a-real-time-web-log-analyzer-goaccess/
2. 通过日志监控并收集 Java 应用程序性能数据(Perf4J)
http://www.ibm.com/developerworks/cn/java/j-lo-logforperf/
3.log.io
和
- nginx优化加强战斗力及遇到的坑解决
ronin47
nginx 优化
先说遇到个坑,第一个是负载问题,这个问题与架构有关,由于我设计架构多了两层,结果导致会话负载只转向一个。解决这样的问题思路有两个:一是改变负载策略,二是更改架构设计。
由于采用动静分离部署,而nginx又设计了静态,结果客户端去读nginx静态,访问量上来,页面加载很慢。解决:二者留其一。最好是保留apache服务器。
来以下优化:
- java-50-输入两棵二叉树A和B,判断树B是不是A的子结构
bylijinnan
java
思路来自:
http://zhedahht.blog.163.com/blog/static/25411174201011445550396/
import ljn.help.*;
public class HasSubtree {
/**Q50.
* 输入两棵二叉树A和B,判断树B是不是A的子结构。
例如,下图中的两棵树A和B,由于A中有一部分子树的结构和B是一
- mongoDB 备份与恢复
开窍的石头
mongDB备份与恢复
Mongodb导出与导入
1: 导入/导出可以操作的是本地的mongodb服务器,也可以是远程的.
所以,都有如下通用选项:
-h host 主机
--port port 端口
-u username 用户名
-p passwd 密码
2: mongoexport 导出json格式的文件
- [网络与通讯]椭圆轨道计算的一些问题
comsci
网络
如果按照中国古代农历的历法,现在应该是某个季节的开始,但是由于农历历法是3000年前的天文观测数据,如果按照现在的天文学记录来进行修正的话,这个季节已经过去一段时间了。。。。。
也就是说,还要再等3000年。才有机会了,太阳系的行星的椭圆轨道受到外来天体的干扰,轨道次序发生了变
- 软件专利如何申请
cuiyadll
软件专利申请
软件技术可以申请软件著作权以保护软件源代码,也可以申请发明专利以保护软件流程中的步骤执行方式。专利保护的是软件解决问题的思想,而软件著作权保护的是软件代码(即软件思想的表达形式)。例如,离线传送文件,那发明专利保护是如何实现离线传送文件。基于相同的软件思想,但实现离线传送的程序代码有千千万万种,每种代码都可以享有各自的软件著作权。申请一个软件发明专利的代理费大概需要5000-8000申请发明专利可
- Android学习笔记
darrenzhu
android
1.启动一个AVD
2.命令行运行adb shell可连接到AVD,这也就是命令行客户端
3.如何启动一个程序
am start -n package name/.activityName
am start -n com.example.helloworld/.MainActivity
启动Android设置工具的命令如下所示:
# am start -
- apache虚拟机配置,本地多域名访问本地网站
dcj3sjt126com
apache
现在假定你有两个目录,一个存在于 /htdocs/a,另一个存在于 /htdocs/b 。
现在你想要在本地测试的时候访问 www.freeman.com 对应的目录是 /xampp/htdocs/freeman ,访问 www.duchengjiu.com 对应的目录是 /htdocs/duchengjiu。
1、首先修改C盘WINDOWS\system32\drivers\etc目录下的
- yii2 restful web服务[速率限制]
dcj3sjt126com
PHPyii2
速率限制
为防止滥用,你应该考虑增加速率限制到您的API。 例如,您可以限制每个用户的API的使用是在10分钟内最多100次的API调用。 如果一个用户同一个时间段内太多的请求被接收, 将返回响应状态代码 429 (这意味着过多的请求)。
要启用速率限制, [[yii\web\User::identityClass|user identity class]] 应该实现 [[yii\filter
- Hadoop2.5.2安装——单机模式
eksliang
hadoophadoop单机部署
转载请出自出处:http://eksliang.iteye.com/blog/2185414 一、概述
Hadoop有三种模式 单机模式、伪分布模式和完全分布模式,这里先简单介绍单机模式 ,默认情况下,Hadoop被配置成一个非分布式模式,独立运行JAVA进程,适合开始做调试工作。
二、下载地址
Hadoop 网址http:
- LoadMoreListView+SwipeRefreshLayout(分页下拉)基本结构
gundumw100
android
一切为了快速迭代
import java.util.ArrayList;
import org.json.JSONObject;
import android.animation.ObjectAnimator;
import android.os.Bundle;
import android.support.v4.widget.SwipeRefreshLayo
- 三道简单的前端HTML/CSS题目
ini
htmlWeb前端css题目
使用CSS为多个网页进行相同风格的布局和外观设置时,为了方便对这些网页进行修改,最好使用( )。http://hovertree.com/shortanswer/bjae/7bd72acca3206862.htm
在HTML中加入<table style=”color:red; font-size:10pt”>,此为( )。http://hovertree.com/s
- overrided方法编译错误
kane_xie
override
问题描述:
在实现类中的某一或某几个Override方法发生编译错误如下:
Name clash: The method put(String) of type XXXServiceImpl has the same erasure as put(String) of type XXXService but does not override it
当去掉@Over
- Java中使用代理IP获取网址内容(防IP被封,做数据爬虫)
mcj8089
免费代理IP代理IP数据爬虫JAVA设置代理IP爬虫封IP
推荐两个代理IP网站:
1. 全网代理IP:http://proxy.goubanjia.com/
2. 敲代码免费IP:http://ip.qiaodm.com/
Java语言有两种方式使用代理IP访问网址并获取内容,
方式一,设置System系统属性
// 设置代理IP
System.getProper
- Nodejs Express 报错之 listen EADDRINUSE
qiaolevip
每天进步一点点学习永无止境nodejs纵观千象
当你启动 nodejs服务报错:
>node app
Express server listening on port 80
events.js:85
throw er; // Unhandled 'error' event
^
Error: listen EADDRINUSE
at exports._errnoException (
- C++中三种new的用法
_荆棘鸟_
C++new
转载自:http://news.ccidnet.com/art/32855/20100713/2114025_1.html
作者: mt
其一是new operator,也叫new表达式;其二是operator new,也叫new操作符。这两个英文名称起的也太绝了,很容易搞混,那就记中文名称吧。new表达式比较常见,也最常用,例如:
string* ps = new string("
- Ruby深入研究笔记1
wudixiaotie
Ruby
module是可以定义private方法的
module MTest
def aaa
puts "aaa"
private_method
end
private
def private_method
puts "this is private_method"
end
end