JS與OC的交互 WebViewJavaScriptBridge WEB微信支付:
Markdown及擴展
網上找了挺多的,自己給自己總結了一下(僅供小白參考,大牛就放過我吧)說白了就是混合開發H5+原生
想要從網頁對APP進行操作,最直接的就是微信支付,因爲微信沒有開放他的Web版的支付(京東可以,是因爲籤協議了),所以就需要客戶端來操作了
總體來說我們需要的就是通過WebViewJavaScriptBridge進行H5與客戶端之間的通信
A . H5發送消息給客戶端(帶需要的參數)
B . 客戶端給H5發送消息(可以帶參數)
H5不能直接調起微信客戶端,需要原生調起微信客戶端(js調起客戶端)。通過WebViewJavaScriptBridge實現,H5需要調用JSB進行註冊一個方法,iOS/Android進行註冊,調起相同的方法名,當H5觸發這個方法,客戶端可以獲取到H5傳過來的參數,實現想做的動作
微信支付結果,iOS/Android獲取到支付結果的時候,同樣通過之前註冊的方法,可以給H5傳參數。
多說無益,上代碼了
代碼塊
//bridge註冊js回調方法
[_bridge registerHandler:@"testObjcCallback" handler:^(id data, WVJBResponseCallback responseCallback) {
UIAlertView * alert = [[UIAlertView alloc]initWithTitle:@"來自js的消息" message:[NSString stringWithFormat:@"%@",data] delegate:nil cancelButtonTitle:@"確定" otherButtonTitles:nil, nil];
[alert show];
}];
//button單擊事件:調用js的方法
id data = @{ @”greetingFromObjC”: @”你好, JS!” };
[_bridge callHandler:@"testJavascriptHandler" data:data responseCallback:^(id response) {
}];
有需要可以找我要demo,看見很多人需要,我附上一個github上的demo鏈接,這是一個簡易版的,滿足不了你的需求,你可以私信我,我還有好幾個
demo鏈接