1

私はSenchaTouchとPhoneGapを使用しています。コードはiOS用で、接尾辞#phonegap-externalのURLを待機しています。

- (BOOL) webView:(UIWebView*)theWebView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType
{
NSURL *url = [request URL];
if ( ([url fragment] != NULL) && ([[url fragment] rangeOfString:@"phonegap=external"].location != NSNotFound))
{
    if ([[UIApplication sharedApplication] canOpenURL:url]) {
        [[UIApplication sharedApplication] openURL:url];
        return NO;
    }
}

return [super webView:theWebView shouldStartLoadWithRequest:request navigationType:navigationType];
}

ですから、私はObj-Cでコードを何行も書いていませんので、あなたの助けが必要です。誰かがコードを編集して、サフィックスなしでURLを開くことができますか?

編集:ユーザーがアプリでURLを開くと、Webビュー内で開きますが、SafariでURLを開くことをお勧めします。したがって、このコードは、URLに次のようなサフィックスがあるかどうかをチェックします-http://google.com#phonegap-externalそしてSafariで開きます。私を悩ませているのは、URLがhttp://google.comに変更されておらず、指定されたURLhttp: //google.com/#phonegap-externalで開くことだけです。誰かがこれを修正してくれませんか。

4

1 に答える 1

2

インラインで開くか外部で開くかを示すURLの部分(つまり#phonegap-external文字列)が常にURLの最後の部分であることが確実な場合は、次のように記述してこのサフィックスを削除してみてください。

NSString *orig = [url absoluteString];
size_t frLen = [@"phonegap-external" length];
NSString *stripped = [orig substringToIndex:orig.length - frLen];
NSURL *newURL = [NSURL URLWithString:stripped];

[[UIApplication sharedApplication] openURL:newURL];
于 2012-09-16T20:11:36.950 に答える