webView 与 JS 的交互
来源:互联网 发布:股票交易软件源码 编辑:程序博客网 时间:2024/05/21 10:51
@property (nonatomic,strong) WebViewJavascriptBridge *bridge;
- (void)viewWillAppear:(BOOL)animated {
//将此webview与WebViewJavascriptBridge关联点击(webView 可以回调这个方法
// js调oc方法(可以通过data给oc方法传值,使用responseCallback将值再返回给js)
//oc 向js传值
//
//
}
- (void)webViewDidStartLoad:(UIWebView *)webView {
}
- (void)webViewDidFinishLoad:(UIWebView *)webView {
}
- (void)renderButtons:(UIWebView*)webView {
}
- (void)sendMessage:(id)sender {
}
- (void)callHandler:(id)sender {
}
- (void)loadExamplePage:(UIWebView*)webView {
//加载本地的html
//
//
//
//
//
//链接
}
type='text/css'>
html { font-family:Helvetica; color:#222; }
h1 { color:steelblue; font-size:24px; margin-top:24px; }
button { margin:0 3px 10px; font-size:12px; }
.logLine { border-bottom:1px solid #ccc; padding:4px 2px; font-family:courier;font-size:11px; }
WebViewJavascriptBridge Demo
window.onerror = function(err) {
log('window.onerror: ' + err)
}
function connectWebViewJavascript
if (window.WebViewJavascriptBridge) {
callback(WebViewJavascriptBridge)
} else {
document.addEventListener('WebViewJavascriptBridgeR
callback(WebViewJavascriptBridge)
}, false)
}
}
connectWebViewJavascript
var uniqueId = 1
function log(message, data) {
var log = document.getElementByIdx_x('log')
var el = document.createElement_x('div')
el.className = 'logLine'
el.innerHTML = uniqueId++ + '. ' + message + ':
' + JSON.stringify(data)
if (log.children.length) { log.insertBefore(el, log.children[0]) }
else { log.appendChild(el) }
}
bridge.init(function(message, responseCallback) {
log('JS got a message', message)
var data = { 'Javascript Responds':'Wee!' }
log('JS responding with', data)
responseCallback(data)
})
bridge.registerHandler('testJavascriptHandler', function(data, responseCallback) {
log('ObjC called testJavascriptHandler with', data)
var responseData = { 'Javascript Says':'Right back atcha!' }
log('JS responding with', responseData)
responseCallback(responseData)
})
var button = document.getElementByIdx_x('buttons').appendChild(document.createElement_x('button'))
button.innerHTML = 'Send message to ObjC'
button.onclick = function(e) {
e.preventDefault()
var data = 'Hello from JS button'
log('JS sending message', data)
bridge.send(data, function(responseData) {
log('JS got response', responseData)
})
}
document.body.appendChild(document.createElement_x('br'))
var callbackButton = document.getElementByIdx_x('buttons').appendChild(document.createElement_x('button'))
callbackButton.innerHTML = 'Fire testObjcCallback'
callbackButton.onclick = function(e) {
e.preventDefault()
log('JS calling handler "testObjcCallback"')
bridge.callHandler('testObjcCallback', {'foo': 'bar'}, function(response) {
log('JS got response', response)
})
}
})
- WebView与js的交互
- js与webView的交互
- WebView 与 JS 的交互
- webView 与 JS 的交互
- WebView与Js的交互
- webview与js的交互
- webview与js交互
- webview与js交互
- webview与js交互
- webview与js交互
- webview与js交互
- webview与js交互
- WebView与JS交互
- webView与js交互
- webView与js交互
- webview与js交互
- webview与js交互
- webview与js交互
- 《C++Primer 5e》学习笔记(1):变量和基本类型
- javase--day_01
- java 获取绝对路径去除路径的%空格问题
- Android通过代码模拟物理、屏幕点击事件
- 隐式对象讲解
- webView 与 JS 的交互
- 性能测试
- JAVA中常见的Exception
- 有关 Thread.Sleep(2000)
- 编程语言拟人化(一)
- Apache的prefork模式和worker模式及其切换
- 使用jquery给单选按钮设置值成功但没有效果的原因,应使用prop
- respond_to 和 respond_with
- swift学习记录(扩展)