rhodes 5.5.0.3 → 5.5.0.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +10 -0
- data/lib/commonAPI/coreapi/ext/platform/android/src/com/rho/notification/NotificationSingleton.java +20 -8
- data/lib/commonAPI/coreapi/ext/platform/iphone/cpp_based_impl/SystemImpl.mm +1 -2
- data/lib/commonAPI/coreapi/ext/system.xml +1 -1
- data/platform/android/build/android.rake +1 -0
- data/platform/iphone/Classes/AppManager/AppManager.m +44 -3
- data/platform/iphone/Classes/NativeView/RhoNativeViewManager.mm +4 -3
- data/platform/iphone/Classes/NativeView/RhoNativeViewManagerOC.h +1 -1
- data/platform/iphone/Classes/RhoMainView.h +8 -2
- data/platform/iphone/Classes/RhoUIWebView.h +75 -0
- data/platform/iphone/Classes/RhoUIWebView.m +142 -0
- data/platform/iphone/Classes/RhoWKWebView.h +87 -0
- data/platform/iphone/Classes/RhoWKWebView.m +187 -0
- data/platform/iphone/Classes/RhoWebView.h +72 -0
- data/platform/iphone/Classes/RhoWebViewFabrique.h +35 -0
- data/platform/iphone/Classes/RhoWebViewFabrique.m +87 -0
- data/platform/iphone/Classes/Rhodes.m +17 -6
- data/platform/iphone/Classes/Signature.old/SignatureDelegate.m +11 -4
- data/platform/iphone/Classes/Signature/SignatureDelegate.m +3 -4
- data/platform/iphone/Classes/SimpleMainView.h +7 -5
- data/platform/iphone/Classes/SimpleMainView.m +174 -179
- data/platform/iphone/Classes/SplitView/RightViewController.h +2 -2
- data/platform/iphone/Classes/SplitView/RightViewController.m +9 -10
- data/platform/iphone/Classes/SplitView/SplittedMainView.h +2 -3
- data/platform/iphone/Classes/SplitView/SplittedMainView.m +10 -7
- data/platform/iphone/Classes/TabbedMainView.h +2 -1
- data/platform/iphone/Classes/TabbedMainView.m +13 -10
- data/platform/iphone/Classes/URLProtocol/CRhoURLProtocol.m +21 -5
- data/platform/iphone/Classes/WebView.m +1 -1
- data/platform/iphone/RhoAppBaseLib/RhoAppBaseLib.xcodeproj/project.pbxproj +40 -3
- data/platform/iphone/RhoLib/RhoLib.xcodeproj/project.pbxproj +4 -0
- data/platform/iphone/rbuild/iphone.rake +51 -0
- data/platform/shared/common/RhoNativeViewManager.h +9 -9
- data/platform/shared/common/RhodesApp.cpp +13 -1
- data/platform/shared/net/HttpServer.cpp +12 -2
- data/platform/shared/qt/rhodes/ExternalWebView.ui +11 -2
- data/platform/shared/qt/rhodes/QtMainWindow.cpp +9 -7
- data/platform/shared/qt/rhodes/QtMainWindow.ui +13 -4
- data/platform/shared/qt/rhodes/qkineticscroller.cpp +1245 -0
- data/platform/shared/qt/rhodes/qkineticscroller.h +165 -0
- data/platform/shared/qt/rhodes/qkineticscroller_p.h +168 -0
- data/platform/shared/qt/rhodes/qtflickgesture.cpp +696 -0
- data/platform/shared/qt/rhodes/qtflickgesture_p.h +107 -0
- data/platform/shared/qt/rhodes/qtscroller.cpp +2080 -0
- data/platform/shared/qt/rhodes/qtscroller.h +138 -0
- data/platform/shared/qt/rhodes/qtscroller_p.h +205 -0
- data/platform/shared/qt/rhodes/qtscrollerfilter.cpp +350 -0
- data/platform/shared/qt/rhodes/qtscrollerfilter_p.h +110 -0
- data/platform/shared/qt/rhodes/qtscrollerproperties.cpp +412 -0
- data/platform/shared/qt/rhodes/qtscrollerproperties.h +135 -0
- data/platform/shared/qt/rhodes/qtscrollerproperties_p.h +90 -0
- data/platform/shared/qt/rhodes/qtscrollevent.cpp +190 -0
- data/platform/shared/qt/rhodes/qtscrollevent.h +100 -0
- data/platform/shared/qt/rhodes/qtscrollevent_p.h +33 -0
- data/platform/shared/qt/rhodes/qwebviewkineticscroller.cpp +347 -0
- data/platform/shared/qt/rhodes/qwebviewkineticscroller.h +90 -0
- data/platform/shared/qt/rhodes/qwebviewselectionsuppressor.h +113 -0
- data/platform/shared/qt/rhodes/rhodes.pro +19 -0
- data/res/generators/rhogen.rb +307 -15
- data/res/generators/templates/application/app/Settings/err_sync.erb +12 -6
- data/res/generators/templates/application/app/Settings/home.erb +32 -17
- data/res/generators/templates/application/app/Settings/index.erb +55 -26
- data/res/generators/templates/application/app/Settings/javascript_index.html +111 -0
- data/res/generators/templates/application/app/Settings/javascript_login.html +65 -0
- data/res/generators/templates/application/app/Settings/login.erb +25 -19
- data/res/generators/templates/application/app/Settings/reset.erb +18 -9
- data/res/generators/templates/application/app/Settings/wait.erb +10 -7
- data/res/generators/templates/application/app/index.erb +32 -20
- data/res/generators/templates/application/app/javascript_index.html +66 -0
- data/res/generators/templates/application/app/javascript_index.js +250 -0
- data/res/generators/templates/application/app/layout.erb +12 -67
- data/res/generators/templates/application/javascript_build.yml +41 -0
- data/res/generators/templates/application/javascript_rhoconfig.txt +123 -0
- data/res/generators/templates/application/public/bootstrap-3.3.7/css/bootstrap-theme.css +587 -0
- data/res/generators/templates/application/public/bootstrap-3.3.7/css/bootstrap-theme.css.map +1 -0
- data/res/generators/templates/application/public/bootstrap-3.3.7/css/bootstrap-theme.min.css +6 -0
- data/res/generators/templates/application/public/bootstrap-3.3.7/css/bootstrap-theme.min.css.map +1 -0
- data/res/generators/templates/application/public/bootstrap-3.3.7/css/bootstrap.css +6757 -0
- data/res/generators/templates/application/public/bootstrap-3.3.7/css/bootstrap.css.map +1 -0
- data/res/generators/templates/application/public/bootstrap-3.3.7/css/bootstrap.min.css +6 -0
- data/res/generators/templates/application/public/bootstrap-3.3.7/css/bootstrap.min.css.map +1 -0
- data/res/generators/templates/application/public/bootstrap-3.3.7/fonts/glyphicons-halflings-regular.eot +0 -0
- data/res/generators/templates/application/public/bootstrap-3.3.7/fonts/glyphicons-halflings-regular.svg +288 -0
- data/res/generators/templates/application/public/bootstrap-3.3.7/fonts/glyphicons-halflings-regular.ttf +0 -0
- data/res/generators/templates/application/public/bootstrap-3.3.7/fonts/glyphicons-halflings-regular.woff +0 -0
- data/res/generators/templates/application/public/bootstrap-3.3.7/fonts/glyphicons-halflings-regular.woff2 +0 -0
- data/res/generators/templates/application/public/bootstrap-3.3.7/js/bootstrap.js +2377 -0
- data/res/generators/templates/application/public/bootstrap-3.3.7/js/bootstrap.min.js +7 -0
- data/res/generators/templates/application/public/bootstrap-3.3.7/js/npm.js +13 -0
- data/res/generators/templates/application/public/css/style.css +3 -0
- data/res/generators/templates/application/public/jquery/jquery-3.1.1.min.js +4 -0
- data/res/generators/templates/application/public/jquery/jquery-3.1.1.min.map +1 -0
- data/res/generators/templates/application/rhoconfig.txt +16 -0
- data/res/generators/templates/iphone_project/Bremen7.xcodeproj/project.pbxproj +4 -0
- data/res/generators/templates/model/edit.erb +22 -21
- data/res/generators/templates/model/index.erb +24 -22
- data/res/generators/templates/model/javascript_edit.html +65 -0
- data/res/generators/templates/model/javascript_index.html +56 -0
- data/res/generators/templates/model/javascript_index.js +83 -0
- data/res/generators/templates/model/javascript_model.js +16 -0
- data/res/generators/templates/model/javascript_new.html +64 -0
- data/res/generators/templates/model/javascript_show.html +66 -0
- data/res/generators/templates/model/new.erb +22 -19
- data/res/generators/templates/model/show.erb +22 -14
- data/res/prebuild_base_app/app/index.erb +31 -18
- data/res/prebuild_base_app/app/layout.erb +11 -56
- data/version +1 -1
- metadata +59 -24
- data/res/generators/templates/application/public/css/android.css +0 -418
- data/res/generators/templates/application/public/css/iphone.css +0 -378
- data/res/generators/templates/application/public/css/jqmobile-patch.css +0 -62
- data/res/generators/templates/application/public/css/re_webkit.css +0 -736
- data/res/generators/templates/application/public/css/re_webkit_flat.css +0 -753
- data/res/generators/templates/application/public/css/windows_mobile.css +0 -327
- data/res/generators/templates/application/public/jqmobile/images/ajax-loader.gif +0 -0
- data/res/generators/templates/application/public/jqmobile/images/icon-search-black.png +0 -0
- data/res/generators/templates/application/public/jqmobile/images/icons-18-black.png +0 -0
- data/res/generators/templates/application/public/jqmobile/images/icons-18-white.png +0 -0
- data/res/generators/templates/application/public/jqmobile/images/icons-36-black.png +0 -0
- data/res/generators/templates/application/public/jqmobile/images/icons-36-white.png +0 -0
- data/res/generators/templates/application/public/jqmobile/jquery.mobile-1.4.5.min.css +0 -3
- data/res/generators/templates/application/public/jqmobile/jquery.mobile-1.4.5.min.js +0 -10
- data/res/generators/templates/application/public/jqmobile/jquery.mobile-1.4.5.min.map +0 -1
- data/res/generators/templates/application/public/jqmobile/jquery.mobile.structure-1.4.5.min.css +0 -3
- data/res/generators/templates/application/public/jqmobile/jquery.mobile.theme-1.4.5.min.css +0 -3
- data/res/generators/templates/application/public/jquery/jquery-1.9.1.min.js +0 -5
- data/res/generators/templates/application/public/jquery/jquery-1.9.1.min.map +0 -1
- data/res/generators/templates/application/public/js/application.js +0 -1
- data/res/generators/templates/application/public/js/jqmobile-patch.js +0 -466
- data/res/generators/templates/application/public/js/syncengine.js +0 -504
@@ -659,21 +659,28 @@ static Rhodes *instance = NULL;
|
|
659
659
|
}
|
660
660
|
}
|
661
661
|
|
662
|
+
- (void)initAppManager {
|
663
|
+
NSLog(@"Init appManager");
|
664
|
+
appManager = [AppManager instance];
|
665
|
+
//Configure AppManager
|
666
|
+
[appManager configure];
|
667
|
+
}
|
668
|
+
|
662
669
|
- (void)doRhoInit {
|
663
670
|
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
|
664
671
|
@try {
|
665
|
-
NSLog(@"Init appManager");
|
666
|
-
appManager = [AppManager instance];
|
667
|
-
|
668
|
-
[appManager configure];
|
672
|
+
//NSLog(@"Init appManager");
|
673
|
+
//appManager = [AppManager instance];
|
674
|
+
////Configure AppManager
|
675
|
+
//[appManager configure];
|
669
676
|
|
670
677
|
const char *szRootPath = rho_native_rhopath();
|
671
678
|
const char *szUserPath = rho_native_rhouserpath();
|
672
679
|
//NSLog(@"Init logconf");
|
673
680
|
//rho_logconf_Init_with_separate_user_path(szRootPath, szRootPath, "", szUserPath);
|
674
681
|
InitMemoryInfoCollector();
|
675
|
-
NSLog(@"Create rhodes app");
|
676
|
-
rho_rhodesapp_create_with_separate_user_path(szRootPath, szUserPath);
|
682
|
+
//NSLog(@"Create rhodes app");
|
683
|
+
//rho_rhodesapp_create_with_separate_user_path(szRootPath, szUserPath);
|
677
684
|
app_created = YES;
|
678
685
|
|
679
686
|
rotationLocked = rho_conf_getBool("disable_screen_rotation");
|
@@ -744,6 +751,8 @@ static void displayStatusChanged(CFNotificationCenterRef center, void *observer,
|
|
744
751
|
const char *szUserPath = rho_native_rhouserpath();
|
745
752
|
NSLog(@"Init logconf");
|
746
753
|
rho_logconf_Init_with_separate_user_path(szRootPath, szRootPath, "", szUserPath);
|
754
|
+
|
755
|
+
[self initAppManager];
|
747
756
|
|
748
757
|
NSLog(@"Create new detached thread for initialization stuff");
|
749
758
|
[NSThread detachNewThreadSelector:@selector(doRhoInit) toTarget:self withObject:nil];
|
@@ -964,6 +973,8 @@ static void displayStatusChanged(CFNotificationCenterRef center, void *observer,
|
|
964
973
|
NSLog(@"Rhodes starting application...");
|
965
974
|
rotationLocked = NO;
|
966
975
|
|
976
|
+
[self initAppManager];
|
977
|
+
|
967
978
|
NSLog(@"Create new detached thread for initialization stuff");
|
968
979
|
[NSThread detachNewThreadSelector:@selector(doRhoInit) toTarget:self withObject:nil];
|
969
980
|
|
@@ -189,10 +189,17 @@ SignatureDelegate* ourSD = nil;
|
|
189
189
|
signatureInlineView.backgroundColor = [UIColor colorWithWhite:1 alpha:0];
|
190
190
|
|
191
191
|
|
192
|
-
UIWebView* webView = [[[Rhodes sharedInstance] mainView] getWebView:-1];
|
193
|
-
if (webView != nil) {
|
194
|
-
|
195
|
-
|
192
|
+
//UIWebView* webView = [[[Rhodes sharedInstance] mainView] getWebView:-1];
|
193
|
+
//if (webView != nil) {
|
194
|
+
// UIView* v = webView;//[[webView subviews] objectAtIndex:0];
|
195
|
+
// //UIView* v = [[webView subviews] objectAtIndex:0];
|
196
|
+
// [v addSubview:signatureInlineView];
|
197
|
+
// [v bringSubviewToFront:signatureInlineView];
|
198
|
+
// [v setNeedsDisplay];
|
199
|
+
//}
|
200
|
+
|
201
|
+
UIView* v = [[[[Rhodes sharedInstance] mainView] getRhoWebView:-1] containerView];
|
202
|
+
if (v != nil) {
|
196
203
|
[v addSubview:signatureInlineView];
|
197
204
|
[v bringSubviewToFront:signatureInlineView];
|
198
205
|
[v setNeedsDisplay];
|
@@ -250,11 +250,10 @@ SignatureDelegate* ourSD = nil;
|
|
250
250
|
signatureInlineView.opaque = NO;
|
251
251
|
signatureInlineView.backgroundColor = [UIColor colorWithWhite:1 alpha:0];
|
252
252
|
|
253
|
+
|
254
|
+
UIView* v = [[[[Rhodes sharedInstance] mainView] getRhoWebView:-1] containerView];
|
253
255
|
|
254
|
-
|
255
|
-
if (webView != nil) {
|
256
|
-
UIView* v = webView;//[[webView subviews] objectAtIndex:0];
|
257
|
-
//UIView* v = [[webView subviews] objectAtIndex:0];
|
256
|
+
if (v != nil) {
|
258
257
|
[v addSubview:signatureInlineView];
|
259
258
|
[v bringSubviewToFront:signatureInlineView];
|
260
259
|
[v setNeedsDisplay];
|
@@ -25,15 +25,16 @@
|
|
25
25
|
*------------------------------------------------------------------------*/
|
26
26
|
|
27
27
|
#import <UIKit/UIKit.h>
|
28
|
+
#import "RhoWebView.h"
|
28
29
|
#import "RhoMainView.h"
|
29
30
|
#import "RhoViewController.h"
|
30
31
|
#include "RhoNativeViewManagerOC.h"
|
31
32
|
|
32
33
|
|
33
34
|
|
34
|
-
@interface SimpleMainView : RhoViewController <RhoMainView,
|
35
|
+
@interface SimpleMainView : RhoViewController <RhoMainView, RhoWebViewDelegate> {
|
35
36
|
|
36
|
-
|
37
|
+
id<RhoWebView,NSObject> rhoWebView;
|
37
38
|
UIToolbar *toolbar;
|
38
39
|
UINavigationBar *navbar;
|
39
40
|
CGRect rootFrame;
|
@@ -48,7 +49,7 @@
|
|
48
49
|
int thisTabIndex;
|
49
50
|
}
|
50
51
|
|
51
|
-
@property (nonatomic,retain)
|
52
|
+
@property (nonatomic,retain) id<RhoWebView,NSObject> rhoWebView;
|
52
53
|
@property (nonatomic,retain) UIToolbar *toolbar;
|
53
54
|
@property (nonatomic,retain) UINavigationBar *navbar;
|
54
55
|
@property (nonatomic,retain) NSString *nativeViewType;
|
@@ -63,7 +64,7 @@
|
|
63
64
|
|
64
65
|
- (id)initWithMainView:(id<RhoMainView>)v parent:(UIWindow*)p;
|
65
66
|
- (id)initWithMainView:(id<RhoMainView>)v parent:(UIWindow*)p bar_info:(NSDictionary*)bar_info;
|
66
|
-
- (id)initWithParentView:(UIView *)p frame:(CGRect)frame
|
67
|
+
- (id)initWithParentView:(UIView *)p frame:(CGRect)frame rhowebview:(id<RhoWebView,NSObject>)rhowebview;
|
67
68
|
- (id)initWithParentView:(UIView *)p frame:(CGRect)frame;
|
68
69
|
- (id)initWithParentView:(UIView *)p frame:(CGRect)frame web_bkg_color:(UIColor*)web_bkg_color;
|
69
70
|
|
@@ -77,7 +78,8 @@
|
|
77
78
|
|
78
79
|
-(void)restoreWebView;
|
79
80
|
|
80
|
-
- (
|
81
|
+
- (id<RhoWebView,NSObject>)detachRhoWebView;
|
82
|
+
- (id<RhoWebView,NSObject>)getRhoWebView:(int)tab_index;
|
81
83
|
|
82
84
|
+ (void) disableHiddenOnStart;
|
83
85
|
+ (void) enableHiddenOnStart;
|
@@ -27,6 +27,8 @@
|
|
27
27
|
#import "SimpleMainView.h"
|
28
28
|
#import "AppManager.h"
|
29
29
|
#import "Rhodes.h"
|
30
|
+
#import "RhoWebViewFabrique.h"
|
31
|
+
|
30
32
|
|
31
33
|
#include "common/RhoConf.h"
|
32
34
|
#include "common/RhodesApp.h"
|
@@ -46,9 +48,7 @@
|
|
46
48
|
#undef DEFAULT_LOGCATEGORY
|
47
49
|
#define DEFAULT_LOGCATEGORY "SimpleMainView"
|
48
50
|
|
49
|
-
|
50
|
-
#define RHO_TAG_TOOLBAR 2
|
51
|
-
#define RHO_TAG_NAVBAR 3
|
51
|
+
|
52
52
|
|
53
53
|
int rho_sys_get_screen_width();
|
54
54
|
int rho_sys_get_screen_height();
|
@@ -89,7 +89,7 @@ int rho_sys_get_screen_height();
|
|
89
89
|
|
90
90
|
@implementation SimpleMainView
|
91
91
|
|
92
|
-
@synthesize
|
92
|
+
@synthesize rhoWebView, toolbar, navbar, nativeViewType, nativeViewView, mTabBarCallback, urlBasedNativeView, url_after_set_background, isBackgroundSetted, is_url_after_set_background_redirect, thisTabIndex;
|
93
93
|
|
94
94
|
|
95
95
|
static BOOL makeHiddenUntilLoadContent = YES;
|
@@ -107,14 +107,14 @@ static BOOL makeHiddenUntilLoadContent = YES;
|
|
107
107
|
if (nativeViewView != nil) {
|
108
108
|
return nativeViewView.bounds;
|
109
109
|
}
|
110
|
-
return
|
110
|
+
return [rhoWebView view].bounds;
|
111
111
|
}
|
112
112
|
|
113
113
|
-(CGRect)getContentRect {
|
114
114
|
if (nativeViewView != nil) {
|
115
115
|
return nativeViewView.frame;
|
116
116
|
}
|
117
|
-
return
|
117
|
+
return [rhoWebView view].frame;
|
118
118
|
}
|
119
119
|
|
120
120
|
-(void)setContentRect:(CGRect)rect {
|
@@ -122,7 +122,7 @@ static BOOL makeHiddenUntilLoadContent = YES;
|
|
122
122
|
nativeViewView.frame = rect;
|
123
123
|
return;
|
124
124
|
}
|
125
|
-
|
125
|
+
[rhoWebView view].frame = rect;
|
126
126
|
}
|
127
127
|
|
128
128
|
- (UIBarButtonItem*)makeUIBarButtonWithCustomImage:(UIImage*)image name:(NSString*)name target:(id)target action:(SEL)action colored_icon:(BOOL)colored_icon {
|
@@ -295,7 +295,7 @@ static BOOL makeHiddenUntilLoadContent = YES;
|
|
295
295
|
|
296
296
|
NSMutableArray *btns = [NSMutableArray arrayWithCapacity:[items count]];
|
297
297
|
|
298
|
-
for(int i = 0, lim = [items count]; i < lim; i++) {
|
298
|
+
for(int i = 0, lim = (int)[items count]; i < lim; i++) {
|
299
299
|
NSDictionary* item = (NSDictionary*)[items objectAtIndex:i];
|
300
300
|
|
301
301
|
|
@@ -370,26 +370,12 @@ static BOOL makeHiddenUntilLoadContent = YES;
|
|
370
370
|
[self setContentRect:wFrame];
|
371
371
|
}
|
372
372
|
|
373
|
-
- (
|
374
|
-
|
375
|
-
w.scalesPageToFit = YES;
|
376
|
-
if ( !rho_conf_getBool("WebView.enableBounce") )
|
377
|
-
[[w scrollView] setBounces:NO];
|
378
|
-
w.userInteractionEnabled = YES;
|
379
|
-
w.multipleTouchEnabled = YES;
|
380
|
-
w.clipsToBounds = NO;
|
381
|
-
w.dataDetectorTypes = UIDataDetectorTypeNone;
|
382
|
-
w.delegate = self;
|
383
|
-
w.autoresizesSubviews = YES;
|
384
|
-
//w.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;
|
385
|
-
w.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;
|
386
|
-
w.tag = RHO_TAG_WEBVIEW;
|
387
|
-
|
388
|
-
assert([w retainCount] == 1);
|
373
|
+
- (id<RhoWebView,NSObject>)newRhoWebView:(CGRect)frame {
|
374
|
+
id<RhoWebView,NSObject> w = [RhoWebViewFabrique createRhoWebViewWithFrame:frame];
|
389
375
|
return w;
|
390
376
|
}
|
391
377
|
|
392
|
-
- (id)init:(UIView*)p
|
378
|
+
- (id)init:(UIView*)p rhowebview:(id<RhoWebView,NSObject>)w frame:(CGRect)frame bar_info:(NSDictionary*)bar_info web_bkg_color:(UIColor*)web_bkg_color {
|
393
379
|
[self init];
|
394
380
|
|
395
381
|
self.mTabBarCallback = nil;
|
@@ -409,15 +395,19 @@ static BOOL makeHiddenUntilLoadContent = YES;
|
|
409
395
|
self.view.backgroundColor = web_bkg_color;
|
410
396
|
}
|
411
397
|
|
412
|
-
assert(!webView || [webView retainCount] == 2);
|
413
|
-
[webView removeFromSuperview];
|
414
|
-
|
415
|
-
|
416
|
-
webView
|
398
|
+
//assert(!webView || [webView retainCount] == 2);
|
399
|
+
//[webView removeFromSuperview];
|
400
|
+
[[w view] removeFromSuperview];
|
401
|
+
|
402
|
+
//assert(!webView || [webView retainCount] == 1);
|
403
|
+
self.rhoWebView = nil;
|
404
|
+
rhoWebView = w;
|
417
405
|
//Assertion Failed, fix for ios9 app crashed
|
418
406
|
//assert(!webView || [webView retainCount] == 1);
|
419
|
-
|
420
|
-
|
407
|
+
if (rhoWebView == nil) {
|
408
|
+
rhoWebView = [self newRhoWebView:frame];
|
409
|
+
}
|
410
|
+
[rhoWebView setupDelegate:self];
|
421
411
|
//Assertion Failed, fix for ios9 app crashed
|
422
412
|
//assert(webView && [webView retainCount] == 1);
|
423
413
|
|
@@ -443,17 +433,13 @@ static BOOL makeHiddenUntilLoadContent = YES;
|
|
443
433
|
#endif
|
444
434
|
|
445
435
|
|
446
|
-
|
447
|
-
|
448
|
-
|
449
|
-
|
436
|
+
[rhoWebView view].frame = wFrame;
|
450
437
|
|
451
|
-
|
452
|
-
|
453
|
-
webView.autoresizingMask = /*UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleTopMargin |*/ UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;
|
438
|
+
[rhoWebView view].autoresizesSubviews = YES;
|
439
|
+
[rhoWebView view].autoresizingMask = /*UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleTopMargin |*/ UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;
|
454
440
|
|
455
441
|
if (web_bkg_color != nil) {
|
456
|
-
self.
|
442
|
+
[self.rhoWebView view].backgroundColor = web_bkg_color;
|
457
443
|
int cr = (int)(CGColorGetComponents([web_bkg_color CGColor])[0] * 255);
|
458
444
|
int cg = (int)(CGColorGetComponents([web_bkg_color CGColor])[1] * 255);
|
459
445
|
int cb = (int)(CGColorGetComponents([web_bkg_color CGColor])[2] * 255);
|
@@ -463,7 +449,7 @@ static BOOL makeHiddenUntilLoadContent = YES;
|
|
463
449
|
//webView.hidden = YES;
|
464
450
|
[self setWebBackgroundColor:c];
|
465
451
|
|
466
|
-
assert([webView retainCount] == 1);
|
452
|
+
//assert([webView retainCount] == 1);
|
467
453
|
|
468
454
|
|
469
455
|
UIView* bkg_v = [[UIView alloc] initWithFrame:wFrame];
|
@@ -473,7 +459,7 @@ static BOOL makeHiddenUntilLoadContent = YES;
|
|
473
459
|
|
474
460
|
}
|
475
461
|
else {
|
476
|
-
[root addSubview:
|
462
|
+
[root addSubview:[rhoWebView view]];
|
477
463
|
//Assertion Failed, fix for ios9 app crashed
|
478
464
|
//assert([webView retainCount] == 2);
|
479
465
|
}
|
@@ -599,11 +585,11 @@ static BOOL makeHiddenUntilLoadContent = YES;
|
|
599
585
|
}
|
600
586
|
|
601
587
|
- (id)initWithParentView:(UIView *)p frame:(CGRect)frame bar_info:(NSDictionary*)bar_info {
|
602
|
-
return [self init:p
|
588
|
+
return [self init:p rhowebview:nil frame:frame bar_info:bar_info web_bkg_color:nil];
|
603
589
|
}
|
604
590
|
|
605
591
|
- (id)initWithParentView:(UIView *)p frame:(CGRect)frame bar_info:(NSDictionary*)bar_info web_bkg_color:(UIColor*)web_bkg_color {
|
606
|
-
return [self init:p
|
592
|
+
return [self init:p rhowebview:nil frame:frame bar_info:bar_info web_bkg_color:web_bkg_color];
|
607
593
|
}
|
608
594
|
|
609
595
|
- (id)initWithParentView:(UIView *)p frame:(CGRect)frame {
|
@@ -618,8 +604,8 @@ static BOOL makeHiddenUntilLoadContent = YES;
|
|
618
604
|
return [self initWithMainView:v parent:p bar_info:nil];
|
619
605
|
}
|
620
606
|
|
621
|
-
- (id)initWithParentView:(UIView *)p frame:(CGRect)frame
|
622
|
-
id result = [self init:p
|
607
|
+
- (id)initWithParentView:(UIView *)p frame:(CGRect)frame rhowebview:(id<RhoWebView,NSObject>)rhowebview {
|
608
|
+
id result = [self init:p rhowebview:rhowebview frame:frame bar_info:nil web_bkg_color:nil];
|
623
609
|
return result;
|
624
610
|
}
|
625
611
|
|
@@ -628,8 +614,11 @@ static BOOL makeHiddenUntilLoadContent = YES;
|
|
628
614
|
CGRect frame = [[v view] frame];
|
629
615
|
frame.origin.x = 0;
|
630
616
|
//UIWebView *w = (UIWebView*)[Rhodes subviewWithTag:RHO_TAG_WEBVIEW ofView:[v view]];
|
631
|
-
UIWebView *w = [v detachWebView];
|
632
|
-
|
617
|
+
//UIWebView *w = [v detachWebView];
|
618
|
+
|
619
|
+
id<RhoWebView,NSObject> w = [v detachRhoWebView];
|
620
|
+
|
621
|
+
id result = [self init:p rhowebview:w frame:frame bar_info:bar_info web_bkg_color:nil];
|
633
622
|
return result;
|
634
623
|
}
|
635
624
|
|
@@ -648,12 +637,12 @@ static BOOL makeHiddenUntilLoadContent = YES;
|
|
648
637
|
if (nativeView) {
|
649
638
|
[root addSubview:[nativeView getView]];
|
650
639
|
}
|
651
|
-
else if (
|
652
|
-
[root addSubview:
|
653
|
-
|
640
|
+
else if (rhoWebView != nil) {
|
641
|
+
[root addSubview:[rhoWebView view]];
|
642
|
+
[rhoWebView setupDelegate:self];
|
654
643
|
}
|
655
644
|
assert(!nativeView || [nativeView retainCount] == 2);
|
656
|
-
assert(!webView || [webView retainCount] == 2);
|
645
|
+
//assert(!webView || [webView retainCount] == 2);
|
657
646
|
if (toolbar)
|
658
647
|
[root addSubview:toolbar];
|
659
648
|
assert(!toolbar || [toolbar retainCount] == 2);
|
@@ -665,16 +654,16 @@ static BOOL makeHiddenUntilLoadContent = YES;
|
|
665
654
|
- (void)viewDidUnload {
|
666
655
|
[super viewDidUnload];
|
667
656
|
//assert(!nativeView || [nativeView retainCount] == 1);
|
668
|
-
assert(!webView || [webView retainCount] == 1);
|
657
|
+
//assert(!webView || [webView retainCount] == 1);
|
669
658
|
assert(!toolbar || [toolbar retainCount] == 1);
|
670
659
|
assert(!navbar || [navbar retainCount] == 1);
|
671
660
|
}
|
672
661
|
|
673
662
|
- (void)dealloc {
|
674
|
-
|
663
|
+
[rhoWebView setupDelegate:nil];
|
675
664
|
nativeView = nil;
|
676
665
|
nativeViewView = nil;
|
677
|
-
self.
|
666
|
+
self.rhoWebView = nil;
|
678
667
|
self.toolbar = nil;
|
679
668
|
self.navbar = nil;
|
680
669
|
[super dealloc];
|
@@ -707,13 +696,12 @@ static BOOL makeHiddenUntilLoadContent = YES;
|
|
707
696
|
[self reload:0];
|
708
697
|
}
|
709
698
|
|
710
|
-
|
711
|
-
- (UIWebView*)detachWebView {
|
699
|
+
- (id<RhoWebView,NSObject>)detachRhoWebView {
|
712
700
|
[self restoreWebView];
|
713
|
-
|
714
|
-
[w removeFromSuperview];
|
715
|
-
|
716
|
-
self.
|
701
|
+
id<RhoWebView,NSObject> w = [rhoWebView retain];
|
702
|
+
[[w view] removeFromSuperview];
|
703
|
+
[rhoWebView setupDelegate:nil];
|
704
|
+
self.rhoWebView = nil;
|
717
705
|
|
718
706
|
//Assertion Failed, fix for ios9 app crashed
|
719
707
|
//assert(w && [w retainCount] == 1);
|
@@ -727,16 +715,16 @@ static BOOL makeHiddenUntilLoadContent = YES;
|
|
727
715
|
int cB = (bkg_color & 0xFF);
|
728
716
|
UIColor* bc = [UIColor colorWithRed:( ((float)(cR)) / 255.0) green:(((float)(cG)) / 255.0) blue:(((float)(cB)) / 255.0) alpha:1.0];
|
729
717
|
|
730
|
-
self.
|
718
|
+
[self.rhoWebView view].backgroundColor = bc;
|
731
719
|
//self.view.backgroundColor = bc;
|
732
720
|
|
733
721
|
//NSString* datas = [NSString stringWithFormat:@"<body bgcolor=\"#%6X\"></body>", bkg_color];
|
734
|
-
NSString* datas = [NSString stringWithFormat:@"<body><script type=\"text/javascript\">document.body.style.backgroundColor = \"#%6X\";</script></body>", bkg_color];
|
722
|
+
//NSString* datas = [NSString stringWithFormat:@"<body><script type=\"text/javascript\">document.body.style.backgroundColor = \"#%6X\";</script></body>", bkg_color];
|
735
723
|
|
736
724
|
|
737
725
|
//[self loadHTMLString:datas];
|
738
726
|
NSString* jscode = [NSString stringWithFormat:@"document.body.style.backgroundColor = \"#%6X\";", bkg_color];
|
739
|
-
[self.
|
727
|
+
[self.rhoWebView stringByEvaluatingJavaScriptFromString:jscode];
|
740
728
|
|
741
729
|
//self.webView.hidden = YES;
|
742
730
|
}
|
@@ -744,8 +732,8 @@ static BOOL makeHiddenUntilLoadContent = YES;
|
|
744
732
|
|
745
733
|
- (void)loadHTMLString:(NSString *)data {
|
746
734
|
[self restoreWebView];
|
747
|
-
[
|
748
|
-
[
|
735
|
+
[rhoWebView stopLoading];
|
736
|
+
[rhoWebView loadHTMLString:data baseURL:[NSURL URLWithString:@""]];
|
749
737
|
}
|
750
738
|
|
751
739
|
- (void)back:(int)index {
|
@@ -757,7 +745,7 @@ static BOOL makeHiddenUntilLoadContent = YES;
|
|
757
745
|
//}
|
758
746
|
//else {
|
759
747
|
[[SignatureDelegate getSharedInstance] hideSignatureInlineView];
|
760
|
-
[
|
748
|
+
[rhoWebView goBack];
|
761
749
|
//}
|
762
750
|
}
|
763
751
|
|
@@ -765,7 +753,7 @@ static BOOL makeHiddenUntilLoadContent = YES;
|
|
765
753
|
if ((nativeViewView != nil) && (self.urlBasedNativeView == YES)) {
|
766
754
|
[self restoreWebView];
|
767
755
|
}
|
768
|
-
[
|
756
|
+
[rhoWebView goForward];
|
769
757
|
}
|
770
758
|
|
771
759
|
- (NSString*)encodeUrl:(NSString*)url {
|
@@ -792,9 +780,12 @@ static BOOL makeHiddenUntilLoadContent = YES;
|
|
792
780
|
[nativeViewView removeFromSuperview];
|
793
781
|
nativeViewView = nil;
|
794
782
|
|
795
|
-
|
796
|
-
[root addSubview:
|
783
|
+
[rhoWebView view].frame = rect;
|
784
|
+
[root addSubview:[rhoWebView view]];
|
785
|
+
|
786
|
+
//[[rhoWebView view] setNeedsDisplay];
|
797
787
|
}
|
788
|
+
[rhoWebView setupDelegate:self];
|
798
789
|
if (nativeView != nil) {
|
799
790
|
[RhoNativeViewManagerOC destroyNativeView:nativeView];
|
800
791
|
nativeView = nil;
|
@@ -805,8 +796,8 @@ static BOOL makeHiddenUntilLoadContent = YES;
|
|
805
796
|
-(void)openNativeView:(UIView*)nv_view tab_index:(int)tab_index {
|
806
797
|
nativeViewView = nv_view;
|
807
798
|
if (nativeViewView != nil) {
|
808
|
-
CGRect rect = [
|
809
|
-
[
|
799
|
+
CGRect rect = [[rhoWebView view] frame];
|
800
|
+
[[rhoWebView view] removeFromSuperview];
|
810
801
|
nativeViewView.frame = rect;
|
811
802
|
nativeViewView.autoresizesSubviews = YES;
|
812
803
|
nativeViewView.clipsToBounds = NO;
|
@@ -856,8 +847,8 @@ static BOOL makeHiddenUntilLoadContent = YES;
|
|
856
847
|
// replace webView with NativeView
|
857
848
|
nativeViewView = [nativeView getView];
|
858
849
|
if (nativeViewView != nil) {
|
859
|
-
CGRect rect = [
|
860
|
-
[
|
850
|
+
CGRect rect = [[rhoWebView view] frame];
|
851
|
+
[[rhoWebView view] removeFromSuperview];
|
861
852
|
nativeViewView.frame = rect;
|
862
853
|
//w.userInteractionEnabled = YES;
|
863
854
|
//w.multipleTouchEnabled = YES;
|
@@ -890,8 +881,8 @@ static BOOL makeHiddenUntilLoadContent = YES;
|
|
890
881
|
}
|
891
882
|
|
892
883
|
- (void)loadRequestToWebView:(NSURLRequest*)request {
|
893
|
-
[
|
894
|
-
[
|
884
|
+
[rhoWebView stopLoading];
|
885
|
+
[rhoWebView loadRequest:request];
|
895
886
|
//[request release];
|
896
887
|
}
|
897
888
|
|
@@ -971,8 +962,8 @@ static BOOL makeHiddenUntilLoadContent = YES;
|
|
971
962
|
[nativeViewView setNeedsDisplay];
|
972
963
|
}
|
973
964
|
else {
|
974
|
-
[
|
975
|
-
[
|
965
|
+
[rhoWebView stopLoading];
|
966
|
+
[rhoWebView reload];
|
976
967
|
}
|
977
968
|
}
|
978
969
|
|
@@ -984,17 +975,17 @@ static BOOL makeHiddenUntilLoadContent = YES;
|
|
984
975
|
[self.view.superview bringSubviewToFront:self.view];
|
985
976
|
}
|
986
977
|
RAWLOG_INFO1("Executing JS: %s", [js UTF8String]);
|
987
|
-
[
|
978
|
+
[rhoWebView stringByEvaluatingJavaScriptFromString:js];
|
988
979
|
}
|
989
980
|
|
990
981
|
- (NSString*)currentLocation:(int)index {
|
991
|
-
return [
|
982
|
+
return [rhoWebView currentLocation];
|
992
983
|
}
|
993
984
|
|
994
985
|
#define CUR_URL_DICT_KEY @"CUR_URL_DICT_KEY"
|
995
986
|
|
996
987
|
-(void) get_current_url_command:(NSMutableDictionary*)dict {
|
997
|
-
NSString* res = [
|
988
|
+
NSString* res = [rhoWebView stringByEvaluatingJavaScriptFromString:@"window.location.href"];
|
998
989
|
//NSString* res = [[webView.request mainDocumentURL] absoluteString];
|
999
990
|
[dict setValue:res forKey:CUR_URL_DICT_KEY];
|
1000
991
|
}
|
@@ -1015,8 +1006,8 @@ static BOOL makeHiddenUntilLoadContent = YES;
|
|
1015
1006
|
return 0;
|
1016
1007
|
}
|
1017
1008
|
|
1018
|
-
- (
|
1019
|
-
return
|
1009
|
+
- (id<RhoWebView,NSObject>)getRhoWebView:(int)tab_index {
|
1010
|
+
return rhoWebView;
|
1020
1011
|
}
|
1021
1012
|
|
1022
1013
|
|
@@ -1044,7 +1035,7 @@ static BOOL makeHiddenUntilLoadContent = YES;
|
|
1044
1035
|
#ifdef __IPHONE_7_0
|
1045
1036
|
nFrame.origin.y = wFrame.origin.y;
|
1046
1037
|
#endif
|
1047
|
-
nFrame.size.width =
|
1038
|
+
nFrame.size.width = [rhoWebView view].bounds.size.width;
|
1048
1039
|
navbar.frame = nFrame;
|
1049
1040
|
|
1050
1041
|
wFrame.origin.y += nFrame.size.height;
|
@@ -1108,10 +1099,10 @@ static BOOL makeHiddenUntilLoadContent = YES;
|
|
1108
1099
|
}
|
1109
1100
|
|
1110
1101
|
|
1111
|
-
// UIWebViewDelegate imlementation
|
1112
1102
|
|
1113
|
-
|
1114
|
-
navigationType:(UIWebViewNavigationType)navigationType {
|
1103
|
+
|
1104
|
+
- (BOOL)shouldStartLoadWithRequest:(id<RhoWebView,NSObject>)webView request:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
|
1105
|
+
|
1115
1106
|
NSURL *url = [request URL];
|
1116
1107
|
if (!url)
|
1117
1108
|
return NO;
|
@@ -1132,29 +1123,29 @@ static BOOL makeHiddenUntilLoadContent = YES;
|
|
1132
1123
|
#if defined(RHO_NO_RUBY_API)
|
1133
1124
|
if (![scheme isEqualToString:@"http"] && ![scheme isEqualToString:@"https"] && ![scheme isEqualToString:@"file"])
|
1134
1125
|
#else
|
1135
|
-
|
1126
|
+
if (![scheme isEqualToString:@"http"] && ![scheme isEqualToString:@"https"] && ![scheme isEqualToString:@"file"])
|
1136
1127
|
#endif
|
1137
|
-
|
1138
|
-
|
1139
|
-
|
1140
|
-
|
1141
|
-
|
1142
|
-
|
1143
|
-
|
1144
|
-
|
1145
|
-
|
1146
|
-
|
1147
|
-
|
1148
|
-
|
1149
|
-
|
1150
|
-
|
1151
|
-
|
1152
|
-
|
1153
|
-
|
1154
|
-
|
1128
|
+
external = YES;
|
1129
|
+
else {
|
1130
|
+
NSString *ps = [url query];
|
1131
|
+
NSArray *parameters = [ps componentsSeparatedByString:@"&"];
|
1132
|
+
for (int i = 0, lim = [parameters count]; i < lim; ++i) {
|
1133
|
+
NSString *param = [parameters objectAtIndex:i];
|
1134
|
+
NSArray *nv = [param componentsSeparatedByString:@"="];
|
1135
|
+
int size = [nv count];
|
1136
|
+
if (size == 0 || size > 2)
|
1137
|
+
continue;
|
1138
|
+
NSString *name = [nv objectAtIndex:0];
|
1139
|
+
NSString *value = nil;
|
1140
|
+
if (size == 2)
|
1141
|
+
value = [nv objectAtIndex:1];
|
1142
|
+
|
1143
|
+
if ([name isEqualToString:@"rho_open_target"] && [value isEqualToString:@"_blank"]) {
|
1144
|
+
external = YES;
|
1145
|
+
break;
|
1146
|
+
}
|
1155
1147
|
}
|
1156
1148
|
}
|
1157
|
-
}
|
1158
1149
|
|
1159
1150
|
if (external) {
|
1160
1151
|
// This is not http url so try to open external application for it
|
@@ -1171,110 +1162,114 @@ static BOOL makeHiddenUntilLoadContent = YES;
|
|
1171
1162
|
//}
|
1172
1163
|
[[SignatureDelegate getSharedInstance] hideSignatureInlineView];
|
1173
1164
|
return YES;
|
1165
|
+
|
1174
1166
|
}
|
1175
1167
|
|
1176
|
-
- (void)webViewDidStartLoad:(
|
1168
|
+
- (void)webViewDidStartLoad:(id<RhoWebView,NSObject>)webView {
|
1177
1169
|
// TODO
|
1178
1170
|
//[self active];
|
1179
1171
|
PROF_START("BROWSER_PAGE");
|
1180
1172
|
}
|
1181
1173
|
|
1182
|
-
- (void)webViewDidFinishLoad:(
|
1174
|
+
- (void)webViewDidFinishLoad:(id<RhoWebView,NSObject>)webView {
|
1183
1175
|
// Disable default context menu on touch
|
1184
|
-
[
|
1185
|
-
|
1176
|
+
[rhoWebView stringByEvaluatingJavaScriptFromString:@"document.documentElement.style.webkitTouchCallout = \"none\";"];
|
1177
|
+
|
1186
1178
|
PROF_STOP("BROWSER_PAGE");
|
1187
1179
|
|
1188
1180
|
// Set empty application cache. Otherwise memory used by UIWebView increased rapidly
|
1189
1181
|
// and finally application got out of memory
|
1190
1182
|
NSURLCache *sharedCache = [[NSURLCache alloc] initWithMemoryCapacity:0 diskCapacity:0 diskPath:nil];
|
1191
|
-
|
1192
|
-
|
1193
|
-
|
1194
|
-
|
1195
|
-
|
1196
|
-
|
1197
|
-
|
1183
|
+
[NSURLCache setSharedURLCache:sharedCache];
|
1184
|
+
[sharedCache release];
|
1185
|
+
|
1186
|
+
if (self.view.hidden) {
|
1187
|
+
[[Rhodes sharedInstance] hideSplash];
|
1188
|
+
self.view.hidden = NO;
|
1189
|
+
[self.view.superview bringSubviewToFront:self.view];
|
1190
|
+
}
|
1191
|
+
if (self.nativeViewView == nil) {
|
1192
|
+
if ([[self.rhoWebView view] superview] == nil) {
|
1193
|
+
[self.view addSubview:[self.rhoWebView view]];
|
1194
|
+
}
|
1195
|
+
if ([self.rhoWebView view].hidden) {
|
1196
|
+
[self.rhoWebView view].hidden = NO;
|
1197
|
+
[[self.rhoWebView view].superview bringSubviewToFront:[self.rhoWebView view]];
|
1198
|
+
}
|
1198
1199
|
}
|
1199
|
-
|
1200
|
-
|
1201
|
-
|
1202
|
-
|
1203
|
-
|
1204
|
-
|
1205
|
-
|
1206
|
-
|
1207
|
-
|
1208
|
-
|
1209
|
-
|
1210
|
-
|
1211
|
-
|
1212
|
-
if (self.is_url_after_set_background_redirect) {
|
1213
|
-
[self navigateRedirect:url_after_set_background tab:0];
|
1214
|
-
}
|
1215
|
-
else {
|
1216
|
-
[self navigate:url_after_set_background tab:0];
|
1217
|
-
}
|
1218
|
-
}
|
1219
|
-
}
|
1220
|
-
self.url_after_set_background = nil;
|
1200
|
+
|
1201
|
+
if (!self.isBackgroundSetted) {
|
1202
|
+
self.isBackgroundSetted = YES;
|
1203
|
+
if (self.url_after_set_background != nil) {
|
1204
|
+
if (self.is_url_after_set_background_redirect) {
|
1205
|
+
[self navigateRedirect:url_after_set_background tab:0];
|
1206
|
+
}
|
1207
|
+
else {
|
1208
|
+
[self navigate:url_after_set_background tab:0];
|
1209
|
+
}
|
1210
|
+
}
|
1211
|
+
}
|
1212
|
+
self.url_after_set_background = nil;
|
1221
1213
|
|
1222
1214
|
|
1223
1215
|
NSString* jscode = [NSString stringWithFormat:@"window['__rhoJsVmID']='%@'", [NSNumber numberWithInt:self.thisTabIndex]];
|
1224
1216
|
//[self executeJs:@"alert('hello')" tab:self.thisTabIndex];
|
1225
1217
|
[self executeJs:jscode tab:self.thisTabIndex];
|
1226
1218
|
//[self executeJs:@"alert(window['__rhoJsVmID'])" tab:self.thisTabIndex];
|
1227
|
-
|
1228
1219
|
|
1229
1220
|
|
1230
|
-
|
1231
|
-
|
1232
|
-
|
1233
|
-
|
1234
|
-
if ([webView canGoBack]) {
|
1235
|
-
backBtn.enabled = YES;
|
1236
|
-
} else {
|
1237
|
-
backBtn.enabled = NO;
|
1238
|
-
}
|
1239
|
-
if ([webView canGoForward]) {
|
1240
|
-
forwardBtn.enabled = YES;
|
1241
|
-
} else {
|
1242
|
-
forwardBtn.enabled = NO;
|
1243
|
-
}
|
1244
|
-
|
1245
|
-
//NSString* location = [webview stringByEvaluatingJavaScriptFromString:@"location.href"];
|
1246
|
-
//rho_rhodesapp_keeplastvisitedurl( [location cStringUsingEncoding:[NSString defaultCStringEncoding]] );
|
1247
|
-
|
1248
|
-
if ([actionTarget respondsToSelector:@selector(hideSplash)])
|
1249
|
-
[actionTarget performSelectorOnMainThread:@selector(hideSplash) withObject:nil waitUntilDone:NO];
|
1250
|
-
|
1251
|
-
}
|
1252
|
-
|
1253
|
-
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error {
|
1254
|
-
|
1255
|
-
PROF_STOP("BROWSER_PAGE");
|
1221
|
+
|
1222
|
+
// TODO
|
1223
|
+
// [self inactive];
|
1224
|
+
//
|
1225
|
+
// if ([webView canGoBack]) {
|
1226
|
+
// backBtn.enabled = YES;
|
1227
|
+
// } else {
|
1228
|
+
// backBtn.enabled = NO;
|
1229
|
+
// }
|
1230
|
+
// if ([webView canGoForward]) {
|
1231
|
+
// forwardBtn.enabled = YES;
|
1232
|
+
// } else {
|
1233
|
+
// forwardBtn.enabled = NO;
|
1234
|
+
// }
|
1235
|
+
//
|
1236
|
+
// //NSString* location = [webview stringByEvaluatingJavaScriptFromString:@"location.href"];
|
1237
|
+
// //rho_rhodesapp_keeplastvisitedurl( [location cStringUsingEncoding:[NSString defaultCStringEncoding]] );
|
1238
|
+
//
|
1239
|
+
// if ([actionTarget respondsToSelector:@selector(hideSplash)])
|
1240
|
+
// [actionTarget performSelectorOnMainThread:@selector(hideSplash) withObject:nil waitUntilDone:NO];
|
1241
|
+
|
1242
|
+
}
|
1256
1243
|
|
1244
|
+
- (void)didFailLoadWithError:(id<RhoWebView,NSObject>)webView error:(NSError *)error {
|
1245
|
+
|
1246
|
+
PROF_STOP("BROWSER_PAGE");
|
1247
|
+
|
1257
1248
|
NSString* info = [error localizedDescription];
|
1258
1249
|
NSString* reason = [error localizedFailureReason];
|
1259
1250
|
RAWLOG_INFO2("WebView FAIL load with error: [%s] , reason: [%s]", [info UTF8String], [reason UTF8String]);
|
1260
1251
|
|
1261
|
-
|
1262
|
-
|
1263
|
-
|
1264
|
-
|
1252
|
+
if (self.view.hidden) {
|
1253
|
+
[[Rhodes sharedInstance] hideSplash];
|
1254
|
+
self.view.hidden = NO;
|
1255
|
+
[self.view.superview bringSubviewToFront:self.view];
|
1265
1256
|
}
|
1266
|
-
|
1267
|
-
|
1268
|
-
}
|
1269
|
-
if (self.webView.hidden) {
|
1270
|
-
self.webView.hidden = NO;
|
1271
|
-
[self.webView.superview bringSubviewToFront:self.webView];
|
1257
|
+
if ([[self.rhoWebView view] superview] == nil) {
|
1258
|
+
[self.view addSubview:[self.rhoWebView view]];
|
1272
1259
|
}
|
1273
|
-
|
1274
|
-
|
1260
|
+
if ([self.rhoWebView view].hidden) {
|
1261
|
+
[self.rhoWebView view].hidden = NO;
|
1262
|
+
[[self.rhoWebView view].superview bringSubviewToFront:[self.rhoWebView view]];
|
1263
|
+
}
|
1264
|
+
self.isBackgroundSetted = YES;
|
1265
|
+
self.url_after_set_background = nil;
|
1275
1266
|
|
1276
1267
|
}
|
1277
1268
|
|
1269
|
+
|
1270
|
+
|
1271
|
+
|
1272
|
+
|
1278
1273
|
- (void)viewWillAppear:(BOOL)animated {
|
1279
1274
|
if (self.mTabBarCallback != nil) {
|
1280
1275
|
TabbedMainView* tv = (TabbedMainView*)self.mTabBarCallback;
|