Cordova 中建立与WebView原生对象通信的核心代码



通过reflection 机制获取"SendMessage"接口,并进行通信调用。


private void initReflection()
/*     */     {
/* 349 */       Object webViewObject = NativeToJsMessageQueue.this.webView;
/* 350 */       Class webViewClass = WebView.class;
/*     */       try {
/* 352 */         Field f = webViewClass.getDeclaredField("mProvider");
/* 353 */         f.setAccessible(true);
/* 354 */         webViewObject = f.get(NativeToJsMessageQueue.this.webView);
/* 355 */         webViewClass = webViewObject.getClass();
/*     */       }
/*     */       catch (Throwable localThrowable1) {}
/*     */      
/*     */       try
/*     */       {
/* 361 */         Field f = webViewClass.getDeclaredField("mWebViewCore");
/* 362 */         f.setAccessible(true);
/* 363 */         this.webViewCore = f.get(webViewObject);
/*     */        
/* 365 */         if (this.webViewCore != null) {
/* 366 */           this.sendMessageMethod = this.webViewCore.getClass().getDeclaredMethod("sendMessage", new Class[] { Message.class });
/* 367 */           this.sendMessageMethod.setAccessible(true);
/*     */         }
/*     */       } catch (Throwable e) {
/* 370 */         this.initFailed = true;
/* 371 */         Log.e("JsMessageQueue", "PrivateApiBridgeMode failed to find the expected APIs.", e);
/*     */       }
/*     */     }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值