
正文
javascriptc,javascript错误怎么解决
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
如何在html里面使用javascriptcore
JavaScriptCore是一种JavaScript引擎,主要为webkit提供脚本处理能力(其主要以safari浏览器为代表)。JavaScriptCore是开源webkit的一部分。
Javascript Core两大功能:
1、OC 调用 JS代码
2、JS代码 调用 OC 代码
JS 调用OC代码 其实分几步进行:
第一步、由原生实现log函数,并且加入到JS的上下文中;
第二步、写JS代码 调用 原生的log函数
第三步、有JSContext 执行 JS代码。只不过在原生执行JS代码的时候,JS又调用了原生的函数。
调用方法示例:
#import Foundation/Foundation.h
#import JavaScriptCore/JavaScriptCore.h
@protocol BaseJSAPIJSExport
- (void)log:(JSValue *)params;
@end
@interface JSExecutor : NSObjectBaseJSAPI
@property (nonatomic, strong) JSContext *context;
- (JSValue *)evalueScript:(NSString *)script;
- (JSValue *)jsValueForKey:(NSString *)key;
@end
相关问答
Q1: wkwebview 与javascriptcore 能交互吗
能交互的,如下:
//第一种方法,直接webview执行(应该是封装了下面的方法二)
let resultStr="1234"
self.webView.stringByEvaluatingJavaScriptFromString("theFunc('"+resultStr+"');")! as String
//第二种,使用kvc来取得mainframe的context,然后执行
let context = webView.valueForKeyPath("documentView.webView.mainFrame.javaScriptContext") as! JSContext
context.evaluateScript(theScript)
(5)在UIWebView中监听JS的函数,这种方式可以通过原生return来call back,不过return是一种同步的call back。不是非常好。
let context = webView.valueForKeyPath("documentView.webView.mainFrame.javaScriptContext") as! JSContext
//假如JS传给原生一个JSON的字符串
let accountSerial: @convention(block) String - () = { _ in
let value = JSContext.currentArguments().first
let data = value?.toString().dataUsingEncoding(NSUTF8StringEncoding)
let accountInfoDic = try? NSJSONSerialization.JSONObjectWithData(data!, options:[]) as! NSDictionary
}
context.setObject(unsafeBitCast(accountSerial, AnyObject.self), forKeyedSubscript: "saveAccountInfo")
//假如需要原生return一个JSON的字符串
let cookiesSerial : @convention(block) () - String = {
let cookies = NSHTTPCookieStorage.sharedHTTPCookieStorage().cookiesForURL((webView.request?.URL)!)
let header=NSHTTPCookie.requestHeaderFieldsWithCookies(cookies!) as NSDictionary
if(header.objectForKey("Cookie") != nil) {
return cookies.toJsonString()
}
}
Q2: JavaScriptCore.resources是什么
JavaScriptCore是Apple为Sherlock开发的一种脚本解释语言。
后来KDE项目开发的KJS被移植到Mac OS X上。
WebKit也在使用。
Q3: 浏览器啥意思?
这只是一句提醒语而已。毕竟在网上搜索医疗相关的信息(虽然您没有搜索,但不代表不显示),会出现很多虚假的。搜索服务提供商怕担责任,所以提醒搜索者。
Q4: 什么是浏览器
网页浏览器(web browser),常被简称为浏览器,是一种用于检索并展示万维网信息资源的应用程序。
检索的信息资源可以为网页、图片、影音或其他内容,它们由统一资源标志符标志。信息资源中的超链接可以使用户方便地浏览相关信息。网页浏览器虽然主要用于使用万维网,但也可用于获取专用网络中网页服务器之信息或文件系统内之文件。
目前浏览器包罗万象,部分网页浏览器使用纯文字接口,仅支持HTML;部分网页浏览器具有丰富多彩的用户界面,并且支持多种文件格式及协议。那些透过组件而支持电子信件、新闻组及IRC的网页浏览器,经常被称为“网上包”,而不仅仅是“网页浏览器”。
扩展资料:
浏览器通常由七个模块组成,User Interface(用户界面)、Browser engine(浏览器引擎)、Rendering engine(渲染引擎)、Networking(网络)、JavaScript Interpreter(js解释器)、UI Backend(UI 后端)、Date Persistence(数据持久化存储)。
1、用户界面:包括地址栏、后退/前进按钮、书签目录等,也就是你所看到的除了页面显示窗口之外的其他部分。
2、浏览器引擎:可以在用户界面和渲染引擎之间传送指令或在客户端本地缓存中读写数据等,是浏览器中各个部分之间相互通信的主要核心。
3、渲染引擎:解析DOM文档和CSS规则并将内容排版到浏览器中显示有样式的界面,也有人称之为排版引擎,我们常说的浏览器内核主要指的就是渲染引擎。
4、网络:用来完成网络调用或资源下载的模块。
5、UI 后端:用来绘制基本的浏览器窗口内控件,如输入框、按钮、单选按钮等,根据浏览器不同绘制的视觉效果也不同,但功能都是一样的。
6、JS解释器:用来解释执行JS脚本的模块,如 V8 引擎、JavaScriptCore。
7、数据存储:浏览器在硬盘中保存 cookie、localStorage等各种数据,可通过浏览器引擎提供的API进行调用。
参考资料来源:百度百科-浏览器
Q5: ubuntu 怎么安装深度音乐播放器
安装方法
(注释:我的系统是Ubuntu 14.04 其他系统没有实验,所以不保证是否成功)
先安装深度音乐播放器,安装很方便,有PPA可用,不过安装之前需要安装依赖包gstreamer0.10-ffmpeg,然后安装Dmusic,打开终端输入以下命令:
sudo add-apt-repository ppa:noobslab/deepin-scsudo apt-get updatesudo apt-get install deepin-music-player
安装完成之后,如果在Dash里面搜索不到深度音乐,重启一下系统。
第一次启动会有一个向导:
安装百度音乐插件(深度音乐播放器):
1、安装 cython libwebkitgtk-dev python-dev git, 打开终端,输入以下命令:
sudo apt-get install cython libwebkitgtk-dev python-dev git
2、安装pyjavascriptcore,打开终端,输入以下命令:
git clone pyjavascriptcoresudo python setup.py install
3、安装百度音乐插件,打开终端,输入以下命令:
git clone dmusic-plugin-baidumusiccp -r baidumusic ~/.local/share/deepin-music-player/plugins/
运行深度音乐, 选项设置-附加组件 中启用百度音乐即可








