iOS上的UIWebView有添加接口到DOM的方法吗

Does UIWebView on iOS have methods to add interface to DOM?

本文关键字:DOM 方法 接口 上的 UIWebView 添加 iOS      更新时间:2023-09-26

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 . .

中我可以实现这个(在UIWebView iOS注册一个javascript处理程序/接口)。

我只是使用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/