Skip to content

Commit c674c00

Browse files
committed
edit Sample
1 parent b99426a commit c674c00

File tree

2 files changed

+48
-23
lines changed

2 files changed

+48
-23
lines changed

STMScriptMessageHandler/Demo/STMViewController.m

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,13 @@ - (void)viewDidLoad {
3434
[btn addTarget:self action:@selector(onClick) forControlEvents:UIControlEventTouchUpInside];
3535
[self.view addSubview:btn];
3636
btn.center = CGPointMake(self.view.center.x, btn.center.y);
37+
38+
btn = [UIButton buttonWithType:UIButtonTypeSystem];
39+
btn.frame = CGRectMake(0, self.view.frame.size.height - 250, 100, 50);
40+
[btn setTitle:@"Save callback" forState:UIControlStateNormal];
41+
[btn addTarget:self action:@selector(test) forControlEvents:UIControlEventTouchUpInside];
42+
[self.view addSubview:btn];
43+
btn.center = CGPointMake(self.view.center.x, btn.center.y);
3744
}
3845

3946
- (void)prepareScriptMessageHandler {
@@ -59,10 +66,13 @@ - (void)prepareScriptMessageHandler {
5966

6067
- (void)onClick {
6168
[self.webView.stm_defaultScriptMessageHandler callMethod:@"log" parameters:@{@"foo": @"foo"} responseHandler:^(id _Nonnull responseData) {
62-
NSLog(@"[0]native got js response for `log`: %@", responseData);
69+
NSLog(@"native got js response for `log`: %@", responseData);
6370
}];
64-
[self.webView.stm_defaultScriptMessageHandler callMethod:@"log" parameters:@{@"bar": @"bar"} responseHandler:^(id _Nonnull responseData) {
65-
NSLog(@"[1]native got js response for `log`: %@", responseData);
71+
}
72+
73+
- (void)test {
74+
[self.webView.stm_defaultScriptMessageHandler callMethod:@"test" parameters:@{} responseHandler:^(id _Nonnull responseData) {
75+
NSLog(@"native got js response for `test`: %@", responseData);
6676
}];
6777
}
6878

STMScriptMessageHandler/Demo/index.html

Lines changed: 35 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
.logLine { border-bottom:1px solid #ccc; padding:4px 2px; font-family:courier; font-size:11px; }
1010
</style><script language="javascript">
1111
var uniqueId = 1;
12+
var testCallback;
13+
1214
function log(message, data) {
1315
var log = document.getElementById('log')
1416
var el = document.createElement('div')
@@ -18,35 +20,48 @@
1820
else { log.appendChild(el) }
1921
}
2022
function setRightButtons() {
21-
var buttons = [{"title":'按钮0'}, {"title":'按钮1'}];
22-
log('JS calling native method "setButtons"', buttons);
23-
App.Page.callMethod('setButtons', buttons, function(index){
24-
var response = '点击了按钮' + index;
25-
log('JS got native `setButtons` response', response);
26-
});
23+
var buttons = [{ "title": '按钮0' }, { "title": '按钮1' }];
24+
log('JS calling native method "setButtons"', buttons);
25+
App.Page.callMethod('setButtons', buttons, function (index) {
26+
var response = '点击了按钮' + index;
27+
log('JS got native `setButtons` response', response);
28+
});
2729
}
2830

2931
function nslog(data) {
30-
App.Bridge.callMethod('nslog', data, function(data) {
31-
log('[1]JS got native `nslog` response', data);
32-
});
32+
App.Bridge.callMethod('nslog', data, function (data) {
33+
log('JS got native `nslog` response', data);
34+
});
35+
}
36+
37+
function test(data) {
38+
if (testCallback) {
39+
log('calling callback', data);
40+
testCallback(data);
41+
} else {
42+
log('callback is undefined');
43+
}
3344
}
45+
46+
App.Bridge.callMethod('testNativeMethod', { foo: 'foo', bar: 'bar' }, function (data) {
47+
log('JS got native `testNativeMethod` response', data);
48+
});
49+
50+
App.Bridge.registerMethod('log', function (data, callback) {
51+
var message = JSON.parse(data);
52+
log('Native calling js method `log`', message);
53+
callback({ key: 'from js', value: data });
54+
});
3455

35-
App.Bridge.callMethod('nslog', {bar: 'bar'}, function(data) {
36-
log('[0]JS got native `nslog` response', data);
37-
});
56+
App.Bridge.registerMethod('test', function(data, callback) {
57+
log('save callback');
58+
testCallback = callback;
59+
}, true);
3860

39-
App.Bridge.callMethod('testNativeMethod', {foo:'foo', bar: 'bar'}, function(data){
40-
log('JS got native `testNativeMethod` response', data);
41-
});
42-
App.Bridge.registerMethod('log', function(data, callback){
43-
var message = JSON.parse(data);
44-
log('Native calling js method `log`', message);
45-
callback({key: 'from js', value: data});
46-
});
4761
</script>
4862
</head><body>
4963
<input type="button" value="Set Right Buttons" onclick="setRightButtons()" />
5064
<input type="button" value="nslog" onclick="nslog({'foo': 'foo'})" />
65+
<input type="button" value="test callback" onclick="test({'key': 'value'})" />
5166
<div id='log'></div>
5267
</body></html>

0 commit comments

Comments
 (0)