jscontext

iOS JavaScriptCore使用

浪子不回头ぞ 提交于 2019-12-06 03:43:42
JavaScriptCore是iOS7引入的新功能,JavaScriptCore可以理解为一个浏览器的运行内核,使用JavaScriptCore可以使用native代码(这里主要指objectiveC和swift)与js代码进行相互的调用,本文主要从几个方面进行了解。 native调用js代码 js调用native代码 异常处理 JavaScriptCore和webView的结合使用 要使用JavaScriptCore,首先我们需要引入它的头文档 ` #import <JavaScriptCore/JavaScriptCore.h> ` 这个头里面引入了几个重要的对象 #import "JSContext.h" #import "JSValue.h" #import "JSManagedValue.h" #import "JSVirtualMachine.h" #import "JSExport.h" JSContext是JavaScript的运行上下文,他主要作用是执行js代码和注册native方法接口 JSValue是JSContext执行后的返回结果,他可以是任何js类型(比如基本数据类型和函数类型,对象类型等),并且都有对象的方法转换为native对象。 JSManagedValue是JSValue的封装,用它可以解决js和原声代码之间循环引用的问题

javascript与Objective-C的交互

大城市里の小女人 提交于 2019-11-28 22:31:08
在iOS开发中, 苹果api味我们提供了多种javascript和Objective-C交互的方法, 使用还是比较简单的. 1. 普通的方式实现javascript和Objective-C交互 1.1 oc原生代码调用js代码 通过webView的stringByEvaluatingJavaScriptFromString:方法调用js代码. 此方法可以无限制的执行任何的js代码. /** 原生调用js, 普通的方法: * 通过webView的stringByEvaluatingJavaScriptFromString:方法, 可以无限制的执行任意的js代码,可以通过js代码操控webView上面的任意元素, 也可以直接通过js调用webView中的js代码. 实现从原生代码到javascript的联系. * */ [self.webView stringByEvaluatingJavaScriptFromString:@"showAlert('javascript message')"]; [self.webView stringByEvaluatingJavaScriptFromString:@"document.getElementById('abshdfnb').style.backgroundColor = 'blue';"]; 1.2 通过js调用js代码

qt--QWebEngine加载高德地图

扶醉桌前 提交于 2019-11-28 19:48:41
一、js与c++交互 首先在所创建项目的.pro配置中添加webenginewidgets模块 QT += webenginewidgets 然后在主窗口初始化时创建QWebEngineView对象 m_webView = new QWebEngineView(this); QStackedLayout* layout = new QStackedLayout(ui->frame); ui->frame->setLayout(layout); layout->addWidget(m_webView); 页面的加载和刷新 m_webView->load(url); m_webView->reload(); 辅助类JsContext //jscontext.h #ifndef JSCONTEXT_H #define JSCONTEXT_H #include <QObject> #include <QWebEnginePage> class JsContext : public QObject { Q_OBJECT public: explicit JsContext(QObject *parent = nullptr); signals: void recvdMsg(const QString& msg); //向mainwindow传递消息 public: // 向页面发送消息