* js与ios交互 实例
-
js调用OC *
window.webkit.messageHandlers<name>.postMessage(<messageBody>);
-
name
:方法名 注:要与oc统一 -
messageBody
:传值
注:
传null 例:postMessage(null),
传字典 例:postMessage({title:'测试分享的标题',content:'测试分享的内容’}),
传字符串 例:postMessage('shake_sound_male.wav’),
传数组 例:postMessage([67,205,128,0.5])
-
传值类型要通知oc端,否则会响应无效,无法调用成功。
// 传null
function scanClick() {
window.webkit.messageHandlers.ScanAction.postMessage(null);
}
// 传字典
function shareClick() {
window.webkit.messageHandlers.Share.postMessage({title:'测试分享的标题',content:'测试分享的内容',url:'http://www.baidu.com'});
}
// 传字符串
function playSound() {
window.webkit.messageHandlers.PlaySound.postMessage('shake_sound_male.wav');
}
// 传数组
function colorClick() {
window.webkit.messageHandlers.Color.postMessage([67,205,128,0.5]);
}
oc调用js方法或传值
function tapClick() {
window.webkit.messageHandlers.viewTapClick.postMessage({x: 100, y: 100});
}
try{
//js传值到oc
window.webkit.messageHandlers.viewSwipe.postMessage({from: {x: 100, y:100}, to: {x: 100, y: 500}, duration: 1000 ,tap: "tapClick"});
}catch (e){
console.log(e.toString())
;}
oc wkWebView 写法
[(WKWebView *)_webView evaluateJavaScript:@"tapClick()" completionHandler:^(id param, NSError * error){
}];
网友评论