1

iOS用に開発されたphonegapアプリがあり、特定の条件でstartPageを設定したいのですが、そうでない場合、アプリは別の別のページをスタートアップページとしてロードする必要があります.

私はObjective Cが初めてで、AppDelegate.mのこのメソッドについて何も知りません

- (BOOL) application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions
{
//code
}

これを実現するために利用できるプラグインまたはコードはありますか?

4

3 に答える 3

0

問題文:

私のアプリには 2 つのオプションがあります。

  1. デモ
  2. お客様

デフォルト ページには上記の 2 つのオプションが表示されます。ユーザーが顧客を選択すると、アプリは次回起動時にデフォルト ページを自動的にスキップする必要があります (つまり、ユーザーは顧客のホームページにリダイレクトされます)。

解決策は次のとおりです。

偽の URL

  1. ユーザーが 2 つのオプションのいずれかを選択すると、アプリは偽の URL にアクセスします。

window.location.href="myfakeurl.html*デモ*params"

この URL に追加されたパラメーター: customer または demo (** で区切られた)

  1. MainViewController.m 内

URL ヒットを処理する次のメソッドを追加します。

-(BOOL) webView:(UIWebView*)theWebView shouldStartLoadWithRequest:(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]; }
  1. 今AppDelegate.mで

nsuserdefaults でキーを確認し、以下に示すように起動ページを適切に設定します。

-(BOOL) application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions {
//その他のコード

//...

 self.viewController.startPage = [[NSUserDefaults standardUserDefaults] boolForKey:@"isCustomer"] ? @"homepage.html" :

@"default.html"; //......

return YES; }
于 2013-11-08T14:23:46.483 に答える
0

JavaScript を使用して DeviceReady イベント内の条件を確認し、ページを変更します

于 2013-07-18T10:18:10.940 に答える