iOS上的UIWebView有添加接口到DOM的方法吗
Does UIWebView on iOS have methods to add interface to DOM?
android有一个名为addJavascriptInterface()
的方法,它将android JAVA对象导入到Javascript上下文中。在iOS上是否有类似的功能?我也遇到过一些类似的问题:
androids-addjavascriptinterface-equivalent-in-ios
calling-objective-c-function-from-javascript-in-ios-applications
但我找不到一个合适的解决办法。
function initiateAddCall(){
var locus = reader.getPlace().getLocus();
RoomHelper.postReaderLocus(JSON.stringify(locus));
}
RoomHelper
是我使用的javascript处理程序。在UIWebView
iOS . .
我只是使用EasyJSWebView和工作得很好。还有其他的解决方案,如WebViewJavascriptBridge,但EasyJSWebView更容易使用。
RoomHelper *roomHelper = [RoomHelper new];
[self.myWebView addJavascriptInterfaces:interface WithName:@"RoomHelper"];
[self.myWebView injectJS:webView];
在javascript中调用:
RoomHelper.test()
在RoomHelper中你实现了一个叫做test
的方法RoomHelper.h:
@interface RoomHelper : NSObject
- (void) test;
@end
必须将此用于本机应用程序项目,其中我使用D3.JS来显示图形。使用下面的代码调用JS函数
NSString *jsString = [NSString stringWithFormat:@"showLegendGraphsFromDevice('%@',%d)",sectionName, position];
[_webView stringByEvaluatingJavaScriptFromString:jsString];
这里function showLegendGraphsFromDevice(name, position)
是JS函数
这里的关键是用所需的引号创建正确的JS字符串
您可以使用JavascriptCore实现addJavascriptInterface
。
- https://www.bignerdranch.com/blog/javascriptcore-example/
- http://nshipster.com/javascriptcore/
相关文章:
- 为什么jQuery选择器函数与原生DOM方法相比如此缓慢
- 为什么这个Javascript DOM方法没有'不起作用
- 使用 DOM 方法删除图像元素
- 关于覆盖本机DOM方法时的IE 10问题
- 如何使用 DOM 方法可靠地对数组进行子排序
- 复制预加载的HTML/DOM方法会产生一个使用AJAX/PHP的数组
- DOM方法在Chrome、safari、mozilla中不起作用,在IE*中运行良好
- clonoNode()Dom方法无法克隆给定的Xml文档对象
- 为什么使用jQuery设置属性会得到与使用DOM方法设置不同的结果呢
- 为什么 JavaScript for loop 不适用于 DOM 方法
- 什么是xml dom名称空间,为什么一些dom方法在它们的末尾有NS
- 递归实践:重写DOM方法
- 使用DOM方法定义文本框的动态宽度
- 如何在IE中仅使用HTML DOM方法触发jQuery更改事件?
- 为什么JQuery和Javascript DOM方法会去掉空白?
- 使用DOM方法循环属性
- 在哪里可以找到“;javascript”;V8 DOM方法实现的源代码(document.createElement()
- DOM方法的短变量
- 在 Sizzle 对象上执行 DOM 方法时出错
- 双击() HTML DOM 方法