1

例: Facebook アプリは基本的に html5 を使用した単なる webview です。では、誰かのウォールに何かを書き込もうとすると、デフォルトのメッセージ エディターなどにどのようにリンクするのでしょうか? アプリの一部がおそらく Three20 を使用していることはわかっています。アプリの URL を使用して、アプリのその部分にリンクしているだけですか? (例: fb://profile/122605446)。

4

4 に答える 4

3

UIWebViewはい、デリゲート メソッドメソッドを使用してこれを行うことができますwebView:shouldStartLoadWithRequest:navigationType:。カスタム コードをトリガーするには、カスタム URL スキームを使用する必要があります。それ以外の場合は、通常どおり通過させます。あなたの例fbではカスタムスキームです。URL の残りの部分を使用して、ユーザー 122605446 のプロファイル画面に移動します。

役立つサンプルコードを次に示します。

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
    NSURL *url = request.URL;
    NSString *scheme = [url scheme];
    if ([scheme isEqualToString:@"fb"]) {
        //Do something with the rest of the url and take any action you like.
    }
    else {
        return YES;    
    }
}
于 2012-07-02T16:56:53.550 に答える
2

はい、できます。特にUIWebViewDelegate Protocol Referenceを見てください。webView:shouldStartLoadWithRequest:navigationType:

NSURLRequest、リンクがクリックされると通知します。リンクに特定の引数を含めることができます。引数に応じて、iOS アプリで開くビューをカスタム処理できます。NOまたは、リクエストがロードされないようにする場合は、このメソッドに戻るだけです。

于 2012-07-02T16:52:50.837 に答える
1

UIWebViewDelegate には というメソッドがありwebView:shouldStartLoadingRequest:navigationTypeます。この方法を使用して、特定のリンクやボタンのクリックなどを傍受できます。独自のリンクを作成することもできます。

<a href="myApp://dosomething">Click!</a>デリゲート メソッドの 2 番目の引数には、URL が "myApp://dosomething" である NSURLRequest が含まれるようになりました。

于 2012-07-02T16:53:14.420 に答える
0

アプリに多数の URL タイプ (または 1 つだけ、fb://) を登録するだけです。

次に、URL を解析し、受け取った URL に基づいてアプリケーションのさまざまな部分を開きます。

概要とチュートリアルについては、http://mobiledevelopertips.com/cocoa/launching-your-own-application-via-a-custom-url-scheme.htmlを参照してください。

(この場合、アプリのビューが HTML5 で記述されているかどうかは問題ではありません。)

于 2012-07-02T16:52:17.050 に答える