diff --git a/android/README.md b/android/README.md index a786782..8376950 100644 --- a/android/README.md +++ b/android/README.md @@ -1 +1,5 @@ -This is the root folder for the Android implementation. +This is the root folder for the Android implementation. +\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* +data:2016-09-01 +1、Update andorid return value bug +\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* diff --git a/android/ponto-sample/assets/ponto_sample.html b/android/ponto-sample/assets/ponto_sample.html index d008b5e..0141d7f 100644 --- a/android/ponto-sample/assets/ponto_sample.html +++ b/android/ponto-sample/assets/ponto_sample.html @@ -48,6 +48,7 @@ function (params) { console.log('success with params:'); console.log(params); + alert(JSON.stringify(params)); alert('success'); }, function (params) { diff --git a/android/ponto-sample/src/com/wikia/ponto/sample/modules/Messaging.java b/android/ponto-sample/src/com/wikia/ponto/sample/modules/Messaging.java index d107606..c43e902 100644 --- a/android/ponto-sample/src/com/wikia/ponto/sample/modules/Messaging.java +++ b/android/ponto-sample/src/com/wikia/ponto/sample/modules/Messaging.java @@ -1,5 +1,8 @@ package com.wikia.ponto.sample.modules; +import java.util.HashMap; +import java.util.Map; + import org.json.JSONException; import org.json.JSONObject; @@ -55,8 +58,11 @@ public void sendEmail(String params) { mContext.startActivity(Intent.createChooser(emailIntent, subject)); } - public void getSomeData() { + public JSONObject getSomeData() { Log.i("TAG", new Object() {}.getClass().getEnclosingMethod().getName()); + Map paramsMap = new HashMap(); + paramsMap.put("msg", "this is some data"); + return new JSONObject(paramsMap); } } diff --git a/android/ponto/src/com/wikia/ponto/Ponto.java b/android/ponto/src/com/wikia/ponto/Ponto.java index c971bab..7d074ce 100644 --- a/android/ponto/src/com/wikia/ponto/Ponto.java +++ b/android/ponto/src/com/wikia/ponto/Ponto.java @@ -130,10 +130,12 @@ public void request(String execContext, String className, String methodName, Str Object object = constructor.newInstance(mWebView.getContext()); if (params != null && !params.equalsIgnoreCase(NULL_STRING)) { Method method = cls.getDeclaredMethod(methodName, String.class); - method.invoke(object, params); + Object retObject = method.invoke(object, params); + if(retObject!=null)responseParams = (JSONObject)retObject; } else { Method method = cls.getDeclaredMethod(methodName); - method.invoke(object); + Object retObject = method.invoke(object); + if(retObject!=null)responseParams = (JSONObject)retObject; } responseType = RESPONSE_COMPLETE; } catch (InstantiationException e) { diff --git a/ios/Ponto/Ponto.xcodeproj/project.pbxproj b/ios/Ponto/Ponto.xcodeproj/project.pbxproj index fa264ce..7d96e63 100644 --- a/ios/Ponto/Ponto.xcodeproj/project.pbxproj +++ b/ios/Ponto/Ponto.xcodeproj/project.pbxproj @@ -258,7 +258,7 @@ name = PontoTests; productName = PontoTests; productReference = 6BE468BAA200487C0A00CFAF /* PontoTests.octest */; - productType = "com.apple.product-type.bundle"; + productType = "com.apple.product-type.bundle.ocunit-test"; }; /* End PBXNativeTarget section */ @@ -266,6 +266,7 @@ 6BE46A497320EB524FF754F6 /* Project object */ = { isa = PBXProject; attributes = { + LastTestingUpgradeCheck = 0700; }; buildConfigurationList = 6BE46E9490E9050BBD4C5957 /* Build configuration list for PBXProject "Ponto" */; compatibilityVersion = "Xcode 3.2"; diff --git a/ios/Ponto/Ponto/PontoDEMOMessaging.h b/ios/Ponto/Ponto/PontoDEMOMessaging.h index d98dd69..3e6e7fb 100644 --- a/ios/Ponto/Ponto/PontoDEMOMessaging.h +++ b/ios/Ponto/Ponto/PontoDEMOMessaging.h @@ -8,6 +8,7 @@ #import #import "PontoBaseHandler.h" +#import "PontoDEMOViewController.h" @interface PontoDEMOMessaging : PontoBaseHandler diff --git a/ios/Ponto/Ponto/PontoDEMOMessaging.m b/ios/Ponto/Ponto/PontoDEMOMessaging.m index e7aa099..72deb53 100644 --- a/ios/Ponto/Ponto/PontoDEMOMessaging.m +++ b/ios/Ponto/Ponto/PontoDEMOMessaging.m @@ -9,7 +9,6 @@ #import "PontoDEMOMessaging.h" #import "PontoDEMOAppDelegate.h" - @implementation PontoDEMOMessaging { } @@ -47,4 +46,14 @@ - (NSDictionary *)getSomeDataFromHandler { ]; } +- (void)webViewAlertCallback { + + // try to call JS method + [[PontoDEMOViewController getPontoDispatcher] invokeMethod:@"show" onTarget:@"Alert" withParams:[NSDictionary dictionaryWithObjectsAndKeys: @"this is callback text",@"text",nil] successBlock:^(id params) { + NSLog(@"success block with params: %@", params); + } errorBlock:^(id params) { + NSLog(@"error block with params: %@", params); + }]; +} + @end \ No newline at end of file diff --git a/ios/Ponto/Ponto/PontoDEMOViewController.h b/ios/Ponto/Ponto/PontoDEMOViewController.h index 90aff59..489b785 100644 --- a/ios/Ponto/Ponto/PontoDEMOViewController.h +++ b/ios/Ponto/Ponto/PontoDEMOViewController.h @@ -12,4 +12,6 @@ @interface PontoDEMOViewController : UIViewController @property (strong, nonatomic) IBOutlet UIWebView *webView; + ++ (PontoDispatcher *)getPontoDispatcher; @end diff --git a/ios/Ponto/Ponto/PontoDEMOViewController.m b/ios/Ponto/Ponto/PontoDEMOViewController.m index 12e5b53..469cdbc 100644 --- a/ios/Ponto/Ponto/PontoDEMOViewController.m +++ b/ios/Ponto/Ponto/PontoDEMOViewController.m @@ -14,15 +14,20 @@ @interface PontoDEMOViewController () @end +static PontoDispatcher *_tempPontoDispatcher = nil; + @implementation PontoDEMOViewController -- (void)viewDidLoad -{ ++ (PontoDispatcher *)getPontoDispatcher +{ + return _tempPontoDispatcher; +} +- (void)viewDidLoad +{ [super viewDidLoad]; - // Create Ponto Dispatcher self.title = @"Ponto DEMO WebView"; self.pontoDispatcher = [[PontoDispatcher alloc] initWithHandlerClassesPrefix:@"PontoDEMO" andWebView:self.webView]; @@ -34,12 +39,13 @@ - (void)viewDidLoad NSLog(@"error block with params: %@", params); }]; - // Load local HTML file NSString *pathToLocalFile = [[NSBundle mainBundle] pathForResource:@"pontoDemo" ofType:@"html"]; NSURL *localFileURL = [[NSURL alloc] initFileURLWithPath:pathToLocalFile]; NSURLRequest *localFileRequest = [[NSURLRequest alloc] initWithURL:localFileURL]; [self.webView loadRequest:localFileRequest]; + + _tempPontoDispatcher = self.pontoDispatcher; } diff --git a/ios/Ponto/Resources/html/pontoDemo.html b/ios/Ponto/Resources/html/pontoDemo.html index 7d4d11c..225b9ad 100644 --- a/ios/Ponto/Resources/html/pontoDemo.html +++ b/ios/Ponto/Resources/html/pontoDemo.html @@ -7,6 +7,21 @@ @@ -100,6 +123,10 @@

Ponto DEMO HTML

  • + +
  • + +
  • \ No newline at end of file diff --git a/ios/README.md b/ios/README.md index 8b8004f..f5c4e98 100644 --- a/ios/README.md +++ b/ios/README.md @@ -1 +1,5 @@ This is the root folder for the iOS implementation. +\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* +data:2016-09-04 +1、Add iOS Demo WebView Alert Callback. +\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* \ No newline at end of file