CB-5595 Add toolbarposition=top option.
The position of the toolbar is now configurable, it can be specified on the caller's side. The possible values are top and bottom and the key for the setting is toolbarposition. Also extended the logging of the web view's load errors, it now logs the error code too, not just the localized description of the error that occured. Added the browserOptions to the init method's parameters in order to make it conveniently accessible from the ViewController.
This commit is contained in:
parent
e819041fd4
commit
20611efe67
@ -38,11 +38,33 @@
|
|||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
||||||
|
@interface CDVInAppBrowserOptions : NSObject {}
|
||||||
|
|
||||||
|
@property (nonatomic, assign) BOOL location;
|
||||||
|
@property (nonatomic, assign) BOOL toolbar;
|
||||||
|
@property (nonatomic, copy) NSString* closebuttoncaption;
|
||||||
|
@property (nonatomic, copy) NSString* toolbarbarposition;
|
||||||
|
|
||||||
|
@property (nonatomic, copy) NSString* presentationstyle;
|
||||||
|
@property (nonatomic, copy) NSString* transitionstyle;
|
||||||
|
|
||||||
|
@property (nonatomic, assign) BOOL enableviewportscale;
|
||||||
|
@property (nonatomic, assign) BOOL mediaplaybackrequiresuseraction;
|
||||||
|
@property (nonatomic, assign) BOOL allowinlinemediaplayback;
|
||||||
|
@property (nonatomic, assign) BOOL keyboarddisplayrequiresuseraction;
|
||||||
|
@property (nonatomic, assign) BOOL suppressesincrementalrendering;
|
||||||
|
@property (nonatomic, assign) BOOL hidden;
|
||||||
|
|
||||||
|
+ (CDVInAppBrowserOptions*)parseOptions:(NSString*)options;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
@interface CDVInAppBrowserViewController : UIViewController <UIWebViewDelegate>{
|
@interface CDVInAppBrowserViewController : UIViewController <UIWebViewDelegate>{
|
||||||
@private
|
@private
|
||||||
NSString* _userAgent;
|
NSString* _userAgent;
|
||||||
NSString* _prevUserAgent;
|
NSString* _prevUserAgent;
|
||||||
NSInteger _userAgentLockToken;
|
NSInteger _userAgentLockToken;
|
||||||
|
CDVInAppBrowserOptions *_browserOptions;
|
||||||
CDVWebViewDelegate* _webViewDelegate;
|
CDVWebViewDelegate* _webViewDelegate;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -61,29 +83,9 @@
|
|||||||
- (void)close;
|
- (void)close;
|
||||||
- (void)navigateTo:(NSURL*)url;
|
- (void)navigateTo:(NSURL*)url;
|
||||||
- (void)showLocationBar:(BOOL)show;
|
- (void)showLocationBar:(BOOL)show;
|
||||||
- (void)showToolBar:(BOOL)show;
|
- (void)showToolBar:(BOOL)show : (NSString *) toolbarPosition;
|
||||||
- (void)setCloseButtonTitle:(NSString*)title;
|
- (void)setCloseButtonTitle:(NSString*)title;
|
||||||
|
|
||||||
- (id)initWithUserAgent:(NSString*)userAgent prevUserAgent:(NSString*)prevUserAgent;
|
- (id)initWithUserAgent:(NSString*)userAgent prevUserAgent:(NSString*)prevUserAgent browserOptions: (CDVInAppBrowserOptions*) browserOptions;
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
||||||
@interface CDVInAppBrowserOptions : NSObject {}
|
|
||||||
|
|
||||||
@property (nonatomic, assign) BOOL location;
|
|
||||||
@property (nonatomic, assign) BOOL toolbar;
|
|
||||||
@property (nonatomic, copy) NSString* closebuttoncaption;
|
|
||||||
|
|
||||||
@property (nonatomic, copy) NSString* presentationstyle;
|
|
||||||
@property (nonatomic, copy) NSString* transitionstyle;
|
|
||||||
|
|
||||||
@property (nonatomic, assign) BOOL enableviewportscale;
|
|
||||||
@property (nonatomic, assign) BOOL mediaplaybackrequiresuseraction;
|
|
||||||
@property (nonatomic, assign) BOOL allowinlinemediaplayback;
|
|
||||||
@property (nonatomic, assign) BOOL keyboarddisplayrequiresuseraction;
|
|
||||||
@property (nonatomic, assign) BOOL suppressesincrementalrendering;
|
|
||||||
@property (nonatomic, assign) BOOL hidden;
|
|
||||||
|
|
||||||
+ (CDVInAppBrowserOptions*)parseOptions:(NSString*)options;
|
|
||||||
|
|
||||||
@end
|
@end
|
@ -26,6 +26,9 @@
|
|||||||
#define kInAppBrowserTargetSystem @"_system"
|
#define kInAppBrowserTargetSystem @"_system"
|
||||||
#define kInAppBrowserTargetBlank @"_blank"
|
#define kInAppBrowserTargetBlank @"_blank"
|
||||||
|
|
||||||
|
#define kInAppBrowserToolbarBarPositionBottom @"bottom"
|
||||||
|
#define kInAppBrowserToolbarBarPositionTop @"top"
|
||||||
|
|
||||||
#define TOOLBAR_HEIGHT 44.0
|
#define TOOLBAR_HEIGHT 44.0
|
||||||
#define LOCATIONBAR_HEIGHT 21.0
|
#define LOCATIONBAR_HEIGHT 21.0
|
||||||
#define FOOTER_HEIGHT ((TOOLBAR_HEIGHT) + (LOCATIONBAR_HEIGHT))
|
#define FOOTER_HEIGHT ((TOOLBAR_HEIGHT) + (LOCATIONBAR_HEIGHT))
|
||||||
@ -106,9 +109,10 @@
|
|||||||
|
|
||||||
- (void)openInInAppBrowser:(NSURL*)url withOptions:(NSString*)options
|
- (void)openInInAppBrowser:(NSURL*)url withOptions:(NSString*)options
|
||||||
{
|
{
|
||||||
|
CDVInAppBrowserOptions* browserOptions = [CDVInAppBrowserOptions parseOptions:options];
|
||||||
if (self.inAppBrowserViewController == nil) {
|
if (self.inAppBrowserViewController == nil) {
|
||||||
NSString* originalUA = [CDVUserAgentUtil originalUserAgent];
|
NSString* originalUA = [CDVUserAgentUtil originalUserAgent];
|
||||||
self.inAppBrowserViewController = [[CDVInAppBrowserViewController alloc] initWithUserAgent:originalUA prevUserAgent:[self.commandDelegate userAgent]];
|
self.inAppBrowserViewController = [[CDVInAppBrowserViewController alloc] initWithUserAgent:originalUA prevUserAgent:[self.commandDelegate userAgent] browserOptions: browserOptions];
|
||||||
self.inAppBrowserViewController.navigationDelegate = self;
|
self.inAppBrowserViewController.navigationDelegate = self;
|
||||||
|
|
||||||
if ([self.viewController conformsToProtocol:@protocol(CDVScreenOrientationDelegate)]) {
|
if ([self.viewController conformsToProtocol:@protocol(CDVScreenOrientationDelegate)]) {
|
||||||
@ -118,9 +122,8 @@
|
|||||||
|
|
||||||
_previousStatusBarStyle = [UIApplication sharedApplication].statusBarStyle;
|
_previousStatusBarStyle = [UIApplication sharedApplication].statusBarStyle;
|
||||||
|
|
||||||
CDVInAppBrowserOptions* browserOptions = [CDVInAppBrowserOptions parseOptions:options];
|
|
||||||
[self.inAppBrowserViewController showLocationBar:browserOptions.location];
|
[self.inAppBrowserViewController showLocationBar:browserOptions.location];
|
||||||
[self.inAppBrowserViewController showToolBar:browserOptions.toolbar];
|
[self.inAppBrowserViewController showToolBar:browserOptions.toolbar :browserOptions.toolbarbarposition];
|
||||||
if (browserOptions.closebuttoncaption != nil) {
|
if (browserOptions.closebuttoncaption != nil) {
|
||||||
[self.inAppBrowserViewController setCloseButtonTitle:browserOptions.closebuttoncaption];
|
[self.inAppBrowserViewController setCloseButtonTitle:browserOptions.closebuttoncaption];
|
||||||
}
|
}
|
||||||
@ -390,12 +393,13 @@
|
|||||||
|
|
||||||
@synthesize currentURL;
|
@synthesize currentURL;
|
||||||
|
|
||||||
- (id)initWithUserAgent:(NSString*)userAgent prevUserAgent:(NSString*)prevUserAgent
|
- (id)initWithUserAgent:(NSString*)userAgent prevUserAgent:(NSString*)prevUserAgent browserOptions: (CDVInAppBrowserOptions*) browserOptions
|
||||||
{
|
{
|
||||||
self = [super init];
|
self = [super init];
|
||||||
if (self != nil) {
|
if (self != nil) {
|
||||||
_userAgent = userAgent;
|
_userAgent = userAgent;
|
||||||
_prevUserAgent = prevUserAgent;
|
_prevUserAgent = prevUserAgent;
|
||||||
|
_browserOptions = browserOptions;
|
||||||
_webViewDelegate = [[CDVWebViewDelegate alloc] initWithDelegate:self];
|
_webViewDelegate = [[CDVWebViewDelegate alloc] initWithDelegate:self];
|
||||||
[self createViews];
|
[self createViews];
|
||||||
}
|
}
|
||||||
@ -408,10 +412,10 @@
|
|||||||
// We create the views in code for primarily for ease of upgrades and not requiring an external .xib to be included
|
// We create the views in code for primarily for ease of upgrades and not requiring an external .xib to be included
|
||||||
|
|
||||||
CGRect webViewBounds = self.view.bounds;
|
CGRect webViewBounds = self.view.bounds;
|
||||||
|
BOOL toolbarIsAtBottom = ![_browserOptions.toolbarbarposition isEqualToString:kInAppBrowserToolbarBarPositionTop];
|
||||||
webViewBounds.size.height -= FOOTER_HEIGHT;
|
webViewBounds.size.height -= _browserOptions.location ? FOOTER_HEIGHT : TOOLBAR_HEIGHT;
|
||||||
|
|
||||||
self.webView = [[UIWebView alloc] initWithFrame:webViewBounds];
|
self.webView = [[UIWebView alloc] initWithFrame:webViewBounds];
|
||||||
|
|
||||||
self.webView.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight);
|
self.webView.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight);
|
||||||
|
|
||||||
[self.view addSubview:self.webView];
|
[self.view addSubview:self.webView];
|
||||||
@ -453,7 +457,10 @@
|
|||||||
UIBarButtonItem* fixedSpaceButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil];
|
UIBarButtonItem* fixedSpaceButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil];
|
||||||
fixedSpaceButton.width = 20;
|
fixedSpaceButton.width = 20;
|
||||||
|
|
||||||
self.toolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0.0, (self.view.bounds.size.height - TOOLBAR_HEIGHT), self.view.bounds.size.width, TOOLBAR_HEIGHT)];
|
float toolbarY = toolbarIsAtBottom ? self.view.bounds.size.height - TOOLBAR_HEIGHT : 0.0;
|
||||||
|
CGRect toolbarFrame = CGRectMake(0.0, toolbarY, self.view.bounds.size.width, TOOLBAR_HEIGHT);
|
||||||
|
|
||||||
|
self.toolbar = [[UIToolbar alloc] initWithFrame:toolbarFrame];
|
||||||
self.toolbar.alpha = 1.000;
|
self.toolbar.alpha = 1.000;
|
||||||
self.toolbar.autoresizesSubviews = YES;
|
self.toolbar.autoresizesSubviews = YES;
|
||||||
self.toolbar.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleTopMargin;
|
self.toolbar.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleTopMargin;
|
||||||
@ -468,7 +475,9 @@
|
|||||||
self.toolbar.userInteractionEnabled = YES;
|
self.toolbar.userInteractionEnabled = YES;
|
||||||
|
|
||||||
CGFloat labelInset = 5.0;
|
CGFloat labelInset = 5.0;
|
||||||
self.addressLabel = [[UILabel alloc] initWithFrame:CGRectMake(labelInset, (self.view.bounds.size.height - FOOTER_HEIGHT), self.view.bounds.size.width - labelInset, LOCATIONBAR_HEIGHT)];
|
float locationBarY = toolbarIsAtBottom ? self.view.bounds.size.height - FOOTER_HEIGHT : self.view.bounds.size.height - LOCATIONBAR_HEIGHT;
|
||||||
|
|
||||||
|
self.addressLabel = [[UILabel alloc] initWithFrame:CGRectMake(labelInset, locationBarY, self.view.bounds.size.width - labelInset, LOCATIONBAR_HEIGHT)];
|
||||||
self.addressLabel.adjustsFontSizeToFitWidth = NO;
|
self.addressLabel.adjustsFontSizeToFitWidth = NO;
|
||||||
self.addressLabel.alpha = 1.000;
|
self.addressLabel.alpha = 1.000;
|
||||||
self.addressLabel.autoresizesSubviews = YES;
|
self.addressLabel.autoresizesSubviews = YES;
|
||||||
@ -510,6 +519,11 @@
|
|||||||
[self.view addSubview:self.spinner];
|
[self.view addSubview:self.spinner];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (void) setWebViewFrame : (CGRect) frame {
|
||||||
|
NSLog(@"Setting the WebView's frame to %@", NSStringFromCGRect(frame));
|
||||||
|
[self.webView setFrame:frame];
|
||||||
|
}
|
||||||
|
|
||||||
- (void)setCloseButtonTitle:(NSString*)title
|
- (void)setCloseButtonTitle:(NSString*)title
|
||||||
{
|
{
|
||||||
// the advantage of using UIBarButtonSystemItemDone is the system will localize it for you automatically
|
// the advantage of using UIBarButtonSystemItemDone is the system will localize it for you automatically
|
||||||
@ -544,7 +558,7 @@
|
|||||||
|
|
||||||
CGRect webViewBounds = self.view.bounds;
|
CGRect webViewBounds = self.view.bounds;
|
||||||
webViewBounds.size.height -= FOOTER_HEIGHT;
|
webViewBounds.size.height -= FOOTER_HEIGHT;
|
||||||
self.webView.frame = webViewBounds;
|
[self setWebViewFrame:webViewBounds];
|
||||||
|
|
||||||
locationbarFrame.origin.y = webViewBounds.size.height;
|
locationbarFrame.origin.y = webViewBounds.size.height;
|
||||||
self.addressLabel.frame = locationbarFrame;
|
self.addressLabel.frame = locationbarFrame;
|
||||||
@ -553,7 +567,7 @@
|
|||||||
|
|
||||||
CGRect webViewBounds = self.view.bounds;
|
CGRect webViewBounds = self.view.bounds;
|
||||||
webViewBounds.size.height -= LOCATIONBAR_HEIGHT;
|
webViewBounds.size.height -= LOCATIONBAR_HEIGHT;
|
||||||
self.webView.frame = webViewBounds;
|
[self setWebViewFrame:webViewBounds];
|
||||||
|
|
||||||
locationbarFrame.origin.y = webViewBounds.size.height;
|
locationbarFrame.origin.y = webViewBounds.size.height;
|
||||||
self.addressLabel.frame = locationbarFrame;
|
self.addressLabel.frame = locationbarFrame;
|
||||||
@ -567,17 +581,15 @@
|
|||||||
// webView take up whole height less toolBar height
|
// webView take up whole height less toolBar height
|
||||||
CGRect webViewBounds = self.view.bounds;
|
CGRect webViewBounds = self.view.bounds;
|
||||||
webViewBounds.size.height -= TOOLBAR_HEIGHT;
|
webViewBounds.size.height -= TOOLBAR_HEIGHT;
|
||||||
self.webView.frame = webViewBounds;
|
[self setWebViewFrame:webViewBounds];
|
||||||
} else {
|
} else {
|
||||||
// no toolBar, expand webView to screen dimensions
|
// no toolBar, expand webView to screen dimensions
|
||||||
|
[self setWebViewFrame:self.view.bounds];
|
||||||
CGRect webViewBounds = self.view.bounds;
|
|
||||||
self.webView.frame = webViewBounds;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)showToolBar:(BOOL)show
|
- (void)showToolBar:(BOOL)show : (NSString *) toolbarPosition
|
||||||
{
|
{
|
||||||
CGRect toolbarFrame = self.toolbar.frame;
|
CGRect toolbarFrame = self.toolbar.frame;
|
||||||
CGRect locationbarFrame = self.addressLabel.frame;
|
CGRect locationbarFrame = self.addressLabel.frame;
|
||||||
@ -591,30 +603,31 @@
|
|||||||
|
|
||||||
if (show) {
|
if (show) {
|
||||||
self.toolbar.hidden = NO;
|
self.toolbar.hidden = NO;
|
||||||
|
CGRect webViewBounds = self.view.bounds;
|
||||||
|
|
||||||
if (locationbarVisible) {
|
if (locationbarVisible) {
|
||||||
// locationBar at the bottom, move locationBar up
|
// locationBar at the bottom, move locationBar up
|
||||||
// put toolBar at the bottom
|
// put toolBar at the bottom
|
||||||
|
|
||||||
CGRect webViewBounds = self.view.bounds;
|
|
||||||
webViewBounds.size.height -= FOOTER_HEIGHT;
|
webViewBounds.size.height -= FOOTER_HEIGHT;
|
||||||
self.webView.frame = webViewBounds;
|
|
||||||
|
|
||||||
locationbarFrame.origin.y = webViewBounds.size.height;
|
locationbarFrame.origin.y = webViewBounds.size.height;
|
||||||
self.addressLabel.frame = locationbarFrame;
|
self.addressLabel.frame = locationbarFrame;
|
||||||
|
|
||||||
toolbarFrame.origin.y = (webViewBounds.size.height + LOCATIONBAR_HEIGHT);
|
|
||||||
self.toolbar.frame = toolbarFrame;
|
self.toolbar.frame = toolbarFrame;
|
||||||
} else {
|
} else {
|
||||||
// no locationBar, so put toolBar at the bottom
|
// no locationBar, so put toolBar at the bottom
|
||||||
|
|
||||||
CGRect webViewBounds = self.view.bounds;
|
CGRect webViewBounds = self.view.bounds;
|
||||||
webViewBounds.size.height -= TOOLBAR_HEIGHT;
|
webViewBounds.size.height -= TOOLBAR_HEIGHT;
|
||||||
self.webView.frame = webViewBounds;
|
|
||||||
|
|
||||||
toolbarFrame.origin.y = webViewBounds.size.height;
|
|
||||||
self.toolbar.frame = toolbarFrame;
|
self.toolbar.frame = toolbarFrame;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ([toolbarPosition isEqualToString:kInAppBrowserToolbarBarPositionTop]) {
|
||||||
|
toolbarFrame.origin.y = 0;
|
||||||
|
webViewBounds.origin.y += toolbarFrame.size.height;
|
||||||
|
[self setWebViewFrame:webViewBounds];
|
||||||
|
} else {
|
||||||
|
toolbarFrame.origin.y = (webViewBounds.size.height + LOCATIONBAR_HEIGHT);
|
||||||
|
}
|
||||||
|
[self setWebViewFrame:webViewBounds];
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
self.toolbar.hidden = YES;
|
self.toolbar.hidden = YES;
|
||||||
|
|
||||||
@ -625,16 +638,14 @@
|
|||||||
// webView take up whole height less locationBar height
|
// webView take up whole height less locationBar height
|
||||||
CGRect webViewBounds = self.view.bounds;
|
CGRect webViewBounds = self.view.bounds;
|
||||||
webViewBounds.size.height -= LOCATIONBAR_HEIGHT;
|
webViewBounds.size.height -= LOCATIONBAR_HEIGHT;
|
||||||
self.webView.frame = webViewBounds;
|
[self setWebViewFrame:webViewBounds];
|
||||||
|
|
||||||
// move locationBar down
|
// move locationBar down
|
||||||
locationbarFrame.origin.y = webViewBounds.size.height;
|
locationbarFrame.origin.y = webViewBounds.size.height;
|
||||||
self.addressLabel.frame = locationbarFrame;
|
self.addressLabel.frame = locationbarFrame;
|
||||||
} else {
|
} else {
|
||||||
// no locationBar, expand webView to screen dimensions
|
// no locationBar, expand webView to screen dimensions
|
||||||
|
[self setWebViewFrame:self.view.bounds];
|
||||||
CGRect webViewBounds = self.view.bounds;
|
|
||||||
self.webView.frame = webViewBounds;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -703,10 +714,20 @@
|
|||||||
if (IsAtLeastiOSVersion(@"7.0")) {
|
if (IsAtLeastiOSVersion(@"7.0")) {
|
||||||
[[UIApplication sharedApplication] setStatusBarStyle:[self preferredStatusBarStyle]];
|
[[UIApplication sharedApplication] setStatusBarStyle:[self preferredStatusBarStyle]];
|
||||||
}
|
}
|
||||||
|
[self rePositionViews];
|
||||||
|
|
||||||
[super viewWillAppear:animated];
|
[super viewWillAppear:animated];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (void) rePositionViews {
|
||||||
|
if ([_browserOptions.toolbarbarposition isEqualToString:kInAppBrowserToolbarBarPositionTop]) {
|
||||||
|
[self.webView setFrame:CGRectMake(self.webView.frame.origin.x, TOOLBAR_HEIGHT, self.webView.frame.size.width, self.webView.frame.size.height)];
|
||||||
|
|
||||||
|
float offsetForStatusBar = IsAtLeastiOSVersion(@"7.0") ? 21.0 : 0.0;
|
||||||
|
[self.toolbar setFrame:CGRectMake(self.toolbar.frame.origin.x, self.toolbar.frame.origin.y + offsetForStatusBar, self.toolbar.frame.size.width, self.toolbar.frame.size.height)];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#pragma mark UIWebViewDelegate
|
#pragma mark UIWebViewDelegate
|
||||||
|
|
||||||
- (void)webViewDidStartLoad:(UIWebView*)theWebView
|
- (void)webViewDidStartLoad:(UIWebView*)theWebView
|
||||||
@ -764,7 +785,7 @@
|
|||||||
- (void)webView:(UIWebView*)theWebView didFailLoadWithError:(NSError*)error
|
- (void)webView:(UIWebView*)theWebView didFailLoadWithError:(NSError*)error
|
||||||
{
|
{
|
||||||
// log fail message, stop spinner, update back/forward
|
// log fail message, stop spinner, update back/forward
|
||||||
NSLog(@"webView:didFailLoadWithError - %@", [error localizedDescription]);
|
NSLog(@"webView:didFailLoadWithError - %i: %@", error.code, [error localizedDescription]);
|
||||||
|
|
||||||
self.backButton.enabled = theWebView.canGoBack;
|
self.backButton.enabled = theWebView.canGoBack;
|
||||||
self.forwardButton.enabled = theWebView.canGoForward;
|
self.forwardButton.enabled = theWebView.canGoForward;
|
||||||
@ -814,6 +835,7 @@
|
|||||||
self.location = YES;
|
self.location = YES;
|
||||||
self.toolbar = YES;
|
self.toolbar = YES;
|
||||||
self.closebuttoncaption = nil;
|
self.closebuttoncaption = nil;
|
||||||
|
self.toolbarbarposition = kInAppBrowserToolbarBarPositionBottom;
|
||||||
|
|
||||||
self.enableviewportscale = NO;
|
self.enableviewportscale = NO;
|
||||||
self.mediaplaybackrequiresuseraction = NO;
|
self.mediaplaybackrequiresuseraction = NO;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user