2017-05-16 13 views
1

私は、ローカルのフォルダからGCDwebserverまでのファイルを扱うwebviewを持つSwiftプロジェクトを持っていますが、Webサイトは単一のページアプリケーションとして設計されていますが、index.htmlへのすべてのURL要求を書き換えられる方法はありますか?Swift iOSアプリケーションで単一ページアプリケーションを提供するにはどうすればいいですか?

私は現在GCDwebserverを使用していますが、サーバーを変更してSPAがwebviewに読み込まれるようにしています。 nginxのでは

私は

server { 
    listen 8080; 
    listen [::] 8080; 
    root /root/bundled; 
location/{ 
     try_files $uri $uri/ /index.html; 
} 
} 

のように気にいらないにしてくださいどのように私はOSXでのWebViewで同じ書き換え効果を得るのですか?

答えて

0

私はGCDWebserverを一度も使ったことがないことを認めなければなりませんが、iOSアプリケーションでurlをリダイレクトする必要がある場合はNSURLProtocolを使用できます。あなたはそれについてもっと読むことができますhttps://www.raywenderlich.com/76735/using-nsurlprotocol-swift。リンクを読んだら、基本的にcanonicalRequestForRequestメソッドを使って現在のリクエストを取得し、新しいリクエストを返す必要があります。希望が役立ちます。あなたはより多くの空想のマッチングを行いたい場合

- (void)addDefaultHandlerForMethod:(NSString*)method requestClass:(Class)aClass processBlock:(GCDWebServerProcessBlock)block; 

または正規表現1:

- (void)addHandlerForMethod:(NSString*)method pathRegex:(NSString*)regex requestClass:(Class)aClass processBlock:(GCDWebServerProcessBlock)block 

、あるいはすべての道に行く

1

単純にすべての要求をGETキャッチするデフォルトのハンドラを使用しますマッチブロック:

- (void)addHandlerWithMatchBlock:(GCDWebServerMatchBlock)matchBlock processBlock:(GCDWebServerProcessBlock)processBlock; 
関連する問題