当前位置: 首页 > 工具软件 > OVGap > 使用案例 >

OVGap 原生与JS交互

充高扬
2023-12-01

源代码:https://github.com/windshg/OVGap

OVGap:一个轻量级的类库,能够让iOS应用和远程网页的 Javascript 代码进行通信,也就是说,远程的 Javascript 代码能够调用iOS代码。类库的工作机制是基于一种插件结构(plugin architecture)

Objective-C:

对于本机的目标代码,插件的配置很容易。你所要做的就是实现一个由ogplugin然后填充方法谁想要提供的JavaScript代码从Web视图为本地接口继承的类。这里是示例插件。

.h里:
@interface InfoPlugin : OGPlugin - (void)getDeviceInfo:(OGInvokeCommand *)command; @end

.m里:
@implementation InfoPlugin

- (void)getDeviceInfo:(OGInvokeCommand *)command { NSMutableDictionary *deviceInfo = [NSMutableDictionary dictionary]; [deviceInfo setObject:[[UIDevice currentDevice] name] forKey:@"name"]; [deviceInfo setObject:[[UIDevice currentDevice] systemName] forKey:@"systemName"]; [deviceInfo setObject:[[UIDevice currentDevice] systemVersion] forKey:@"systemVersion"]; [deviceInfo setObject:[[UIDevice currentDevice] model] forKey:@"model"]; [deviceInfo setObject:[[UIDevice currentDevice] localizedModel] forKey:@"localizedModel"]; [self toCallBackSuccess:deviceInfo callBackId:command.callBackId]; } @end

添加一个插件的ogwebview:

 

// add plugin
InfoPlugin *infoPlugin = [[InfoPlugin alloc] init];
[self.webView addPlugin:infoPlugin];

 

插件配置完成。JavaScript代码示例如上。

Javascript:

JavaScript开发,你应该在你想调用当地的Objective-C代码的接口添加一个框架。导入框架:

<script src="ovgap.js" type="text/javascript" charset="utf-8"></script>

  从JavaScript调用原生Objective-C接口:
function testDeviceInfo() {
  var params = {};
  var success = function (callbackId, params) { alert(params); }; var fail = function (callbackId, params) { alert(params); } window.ov_gap.invoke("getDeviceInfo", params, success, fail); }

备注:想调用什么事件,就需要OC和Javascript两端,同时实现相同的方法。譬如:两端都实现getDeviceInfo方法
 

 

转载于:https://www.cnblogs.com/huangzs/p/5197347.html

 类似资料: