UIWebview从未呈现,应用程序被拒绝

时间:2014-11-22 20:22:02

标签: ios objective-c iphone uiwebview app-store

所以我一直在开发一个通过uiwebview加载所有内容的应用程序,并使用标签栏和导航栏让用户遍历应用程序。最近我将应用程序提交到了应用程序商店,但它被拒绝并提供以下信息。

" 3.2 带有占位符文字的应用将被拒绝

我们发现您的应用和/或其元数据似乎不包含最终内容,但不符合App Store审核指南。

具体来说,您的应用不包含任何内容,也没有明显的登录方式。

请参阅随附的屏幕截图以获取更多信息。"

screenshot

从图像中可以看出,Web视图从未接近渲染(底部标签栏在内容加载之前始终为深灰色)。提供的每张图片都是这样的。当我进一步询问时,他们向我保证他们正在使用互联网连接和手机数据测试应用程序。

我在我的设备和朋友上安装了应用程序而没有更改任何目标c代码,它运行正常。我在Android方面有几个用户,所以如果加载了Web视图,应用程序上会有很多内容。

Web视图在viewDidLoad(){}方法中加载。我不知道该改变什么,所以如果有人有任何建议,我会全力以赴。我是否需要以编程方式检查Web视图是否未呈现?如果是这样,我将如何解决这个问题?

- (void)viewDidLoad
{
    webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width,self.view.frame.size.height)];


[self.view addSubview:webView];


webView.scalesPageToFit = true;
NSURL *url = [NSURL URLWithString:@"http://example.com/finnaRoot/index.php"];
NSURLRequest *requestURL = [NSURLRequest requestWithURL:url];
[webView loadRequest:requestURL];
webView.scrollView.showsVerticalScrollIndicator = false;
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
webView.delegate = self;
self.tabBarController.delegate = self;
self.webView.scrollView.delegate = self;

}

我的.h文件有:

#import <UIKit/UIKit.h>

@interface FirstViewController : UIViewController <UITabBarControllerDelegate, UIScrollViewDelegate, UIWebViewDelegate>

@property (nonatomic, strong) IBOutlet UIWebView *webView;

@end

我的.m以

开头
@synthesize webView;

1 个答案:

答案 0 :(得分:1)

这是一场赌博,因为你没有在编辑中包含这些信息,但是:

您的webview变量可能被声明为弱。如果没有其他任何东西对它们有强烈的引用,那么弱变量将被填补。在上面显示的代码中,除非将其添加为子视图,否则其他任何内容都不会强烈引用Web视图。

发布和调试版本之间存在细微差别,以确定何时实际发生这种情况。它在发布版本中的速度要快得多。

可能发生的情况是,在App Store构建中,Web视图会立即被销毁,您甚至不会将其添加到视图中,因此不会显示任何内容。

如果要将其保留为弱ivar,请首先使用Web视图创建局部变量,并在将其添加为子视图后将其分配给ivar。

但主要教训始终是,始终使用发布版本执行UAT。不要只是在连接设备的情况下构建和运行。