2014-01-16 57 views
0

我已經構建了一個移動就緒的網站,可以完成應用程序可以完成的大部分功能。但是,有些人仍然喜歡在手機上使用「應用」的想法,因爲它會直接加載「應用」(網站),而不是讓他們加載瀏覽器並輸入URL。可以創建一個應用程序(點擊圖標後)只需在瀏覽器中加載一個頁面?

有沒有辦法在Android和iOS中創建應用程序,這種方式?這個想法是,只有一個反映網站的自定義圖標,一旦它被點擊,它會加載瀏覽器已經輸入的網站的URL。

看起來它在Android和iOS中都會很簡單,但是滾動瀏覽我的參考書只會產生諸如將可點擊的URL放入應用中的「主屏幕」之類的概念,而不是毫不費力的重定向。

+1

對於Android,請參閱[此答案](http://stackoverflow.com/a/2201999) –

+0

對於Android:只需在佈局中使用webview並顯示您的網頁即可。 – chiru

+0

對於iOS用戶決定他/她是否要在跳板上放置網頁。這[鏈接](http://www.interworks.com/blogs/ssiemens/2012/01/23/get-your-web-app)是一個很好的開端。 – Bamsworld

回答

2

對於iOS而言,應用程序審閱過程中會拒絕「移動網頁殼」類應用程序。

App review guidelines document(你需要與你的AppleID登錄),

2.12應用不是非常有用的,獨特的,僅僅是捆綁的應用程序的網站,或不提供可能的任何持久娛樂價值被拒絕

這意味着僅僅包裝UIWebView以顯示移動網站並且不支持任何其他功能/目的的應用將被拒絕。這樣的外殼應用程序甚至可以通過Safari瀏覽器實現,該瀏覽器允許「將網站添加到主屏幕」。

有類似的問題對SO以前問,請通過它去:Does Apple reject 「mobile web shell」 applications?

希望這有助於!

1

對於Android,我會說@A--C的評論是正確的。你可以做什麼來改善用戶體驗,只有一項活動是透明的。在onCreate函數中有一個顯示某個消息的進度對話框。由於它是透明的,它只會顯示對話框。然後從onCreate內部打開瀏覽器。用戶似乎只是打開瀏覽器。爲了使該單一透明的活動做如下:

<activity android:name=".your.activity.declaration.here" 
android:theme="@android:style/Theme.Translucent.NoTitleBar" /> 

基本上在清單中添加android:theme="@android:style/Theme.Translucent.NoTitleBar"到您的活動宣言。

1

如果您想構建本機iOS應用程序,可以使用簡單的UIWebView加載頁面。

舉個例子,你的根的UIViewController內:

NSString* url = @"http://google.com"; 
NSURL* nsUrl = [NSURL URLWithString:url]; 
NSURLRequest* request = [NSURLRequest requestWithURL:nsUrl cachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData timeoutInterval:30]; 

[self.webView loadRequest:request]; 
+1

我聽說蘋果會審查每個應用程序,有時如果他們認爲應用程序沒有足夠的功能,他們有時不會發布它。你知道這是否屬實,如果是這種情況?如果它在iOS中,應用程序是否必須具有比簡單webView更多的功能? –

+0

我不知道。提交答案時我一直在想同樣的事情。也會好奇的知道。 – Matt

1

作爲一個聲明,我完全不知道,如果蘋果願意接受本作的應用程序商店,但實現這樣的事情是非常簡單的。下面是我在的appDelegate更改的唯一代碼:

#import "AppDelegate.h" 
#import "WebViewController.h" 

@implementation AppDelegate 

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
    // Override point for customization after application launch. 
    self.window.backgroundColor = [UIColor whiteColor]; 

    WebViewController *webVC = [[WebViewController alloc] initWithURLString:@"http://www.google.com"]; 
    self.window.rootViewController = webVC; 

    [self.window makeKeyAndVisible]; 
    return YES; 
} 

然後我子類一個UIViewController有以下的.h和.m文件:

#import <UIKit/UIKit.h> 

@interface WebViewController : UIViewController <UIWebViewDelegate> { 
    NSString *_url; 
} 

- (id)initWithURLString:(NSString *)URLString; 

@end 


#import "WebViewController.h" 

@interface WebViewController() 

@end 

@implementation WebViewController 

- (id)initWithURLString:(NSString *)URLString { 
    self = [super init]; 

    _url = URLString; 

    return self; 
} 

- (void)viewWillAppear:(BOOL)animated { 
    [super viewWillAppear:animated]; 

    UIWebView *webView = [[UIWebView alloc] initWithFrame:self.view.frame]; 
    webView.autoresizingMask = UIViewAutoresizingFlexibleHeight + UIViewAutoresizingFlexibleWidth; 
    webView.delegate = self; 
    [webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:_url]]]; 

    [self.view addSubview:webView]; 
} 

-(void)webViewDidStartLoad:(UIWebView *)webView { 
    // perhaps show some sort of loading message here 
} 

-(void)webViewDidFinishLoad:(UIWebView *)webView { 
    // hide the loading message here 
} 

-(void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error { 
    // also hide the loading message here and present the user with an appropriate error message 
} 

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { 
    return YES; 
} 

@end 

這導致了以下內容:

enter image description here

希望有幫助!

+0

令人驚歎的是,感謝您花時間提交此回覆! –

相關問題