问题陈述:
我的应用程序有两个选项:
- 演示
- 顾客
默认页面显示以上两个选项,如果用户选择了客户,那么下次启动应用程序时应用程序应该自动跳过默认页面(即用户将被重定向到客户的主页)。
解决方案是:
假网址
- 当用户选择两个选项之一时,应用会点击假网址:
window.location.href="myfakeurl.html*演示*params"
附加到此网址的参数为:客户或演示(由**分隔)
- 在 MainViewController.m
添加以下处理 url 命中的方法:
-(BOOL) webView:(UIWebView*)WebView 应该StartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType {
NSString *url = [[request URL] absoluteString];
NSArray *myarray=[[NSArray alloc]init];
if(url.length > 0)
{
NSLog(@"%@",url);
if ([url hasPrefix:@"myfakeurl"])
{
myarray=[url componentsSeparatedByString:@"**"];
NSString *params=[myarray objectAtIndex:1];
NSString *path = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"www"];
path = [path stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSString *str = @"//";
path = [NSString stringWithFormat:@"file:%@%@/homepage.html%@",str,path,params];
NSURLRequest *newRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:path]] ;
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"isCustomer"];
[[NSUserDefaults standardUserDefaults] synchronize];
[theWebView loadRequest:newRequest];
return NO;
}
} return [super webView:theWebView shouldStartLoadWithRequest:request navigationType:navigationType]; }
- 现在在 AppDelegate.m
检查 nsuserdefaults 中的 key 并适当设置启动页面,如下所示:
-(BOOL) application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions {
//其他代码
//...
self.viewController.startPage = [[NSUserDefaults standardUserDefaults] boolForKey:@"isCustomer"] ? @"homepage.html" :
@"default.html"; //......
return YES; }