ios开发app与js交互第三方工具WebViewJavascriptBridge的使用以及问题pod出现的问题处理

WebViewJavascriptBridge是一个ios与安卓通用的与js交互工具。使用起来非常方便,现在WebViewJavascriptBridge支持webview与WKWebView

首先要在.h或者.m里面声明

#import "WKWebViewJavascriptBridge.h"//使用wkweview的声明这个类
//#import "WebViewJavascriptBridge.h"//使用webview的声明这个类
#import <WebKit/WebKit.h>

@property WKWebViewJavascriptBridge* bridge;//类型根据前面声明的类来决定

然后在.m中来关联处理

//开启日志
[WKWebViewJavascriptBridge enableLogging];
//关联webview
self.bridge = [WKWebViewJavascriptBridge bridgeForWebView:webView];
//设置代理,如果用不到可以不用声明
[self.bridge setWebViewDelegate:self];

下面就是js与oc互调的方法

//js调用oc
    [self.bridge registerHandler:@"getMerchantNo" handler:^(id data, WVJBResponseCallback responseCallback) {
        DLog(@"js返回的数据 %@", data);
        if (responseCallback) {
            // 反馈给JS
            responseCallback(@{@"userId": @"123456"});
        }
    }];

    // oc调用js
    [self.bridge callHandler:@"assureOpenResult" data:nil responseCallback:^(id responseData) {
        NSLog(@"oc收到js返回的数据: %@", responseData);
    }];

到这里js与oc互调的方法就结束了。

下面来说一下在调试过程中遇到的一个比较坑的问题

在pod工具之后,远行时代码正常,但是在调用的时候报错 ,报错信息如下

Undefined symbols for architecture arm64:

  "_OBJC_CLASS_$_WKWebViewJavascriptBridge", referenced from:

      objc-class-ref in HKAddServiceVC.o

ld: symbol(s) not found for architecture arm64

clang: error: linker command failed with exit code 1 (use -v to see invocation)

然后在网上找了一大推的方法,其中有人时这样解决的,但是对我项目没用

解决:
Phew, finally got it working by editing the bridge header.

In file WKWebViewJavascriptBridge.h, find these lines:

#if (__MAC_OS_X_VERSION_MAX_ALLOWED > __MAC_10_9 || __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_7_1)
#define supportsWKWebKit
#endif
 

Then remove the #if #endif pair, just leave the #define supportsWKWebKit bit out. But make sure you are using iphone 7.1 or above or it won't support WKWebkit.

然后发现找到的原因时在pod项目之后.a文件居然没用引用到app中

然后添加进去,问题就解决了

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值