第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

js調(diào)用ios的方法

標(biāo)簽:
JavaScript iOS

摘要

在做h5应用的时,有时有些功能js并不能实现的特别完美。比如下载进度条或上传文件进度等。如果能调用ios或者android的方法,实现进度,以及文件上传或者下载列表更好一些。如果使用第三方的js插件。又要考虑到ios和android的版本问题,支持上并不是特别完美。

WebViewJavascriptBridge

WebViewJavascriptBridge是一个开源的ios项目,通过桥的方式obc调用js或者js调用obc方法。项目地址:WebViewJavascriptBridge。

用法

1.Import the header file and declare an ivar property:

#import "WebViewJavascriptBridge.h"
....
@property WebViewJavascriptBridge* bridge;

2.Instantiate WebViewJavascriptBridge with a UIWebView (iOS) or WebView (OSX):

self.bridge = [WebViewJavascriptBridge bridgeForWebView:webView];

3.Register a handler in ObjC, and call a JS handler:


[self.bridge registerHandler:@"ObjC Echo" handler:^(id data, WVJBResponseCallback responseCallback) {
   NSLog(@"ObjC Echo called with: %@", data);
   responseCallback(data);
}];
[self.bridge callHandler:@"JS Echo" responseCallback:^(id responseData) {
   NSLog(@"ObjC received response: %@", responseData);
}];


4.Copy and paste setupWebViewJavascriptBridge into your JS:


function setupWebViewJavascriptBridge(callback) {    if (window.WebViewJavascriptBridge) { return callback(WebViewJavascriptBridge); }    if (window.WVJBCallbacks) { return window.WVJBCallbacks.push(callback); }
   window.WVJBCallbacks = [callback];    var WVJBIframe = document.createElement('iframe');
   WVJBIframe.style.display = 'none';
   WVJBIframe.src = 'wvjbscheme://__BRIDGE_LOADED__';
   document.documentElement.appendChild(WVJBIframe);
   setTimeout(function() { document.documentElement.removeChild(WVJBIframe) }, 0)
}


5.Finally, call setupWebViewJavascriptBridge and then use the bridge to register handlers and call ObjC handlers:

setupWebViewJavascriptBridge(function(bridge) {    /* Initialize your app here */

   bridge.registerHandler('JS Echo', function(data, responseCallback) {
       console.log("JS Echo called with:", data)
       responseCallback(data)
   })
   bridge.callHandler('ObjC Echo', {'key':'value'}, function responseCallback(responseData) {
       console.log("JS received response:", responseData)
   })
})

通过第4和5步骤,js就可以调用objc的方法了。

點擊查看更多內(nèi)容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評論
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學(xué)

大額優(yōu)惠券免費領(lǐng)

立即參與 放棄機會
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報

0/150
提交
取消