1

WKWebView に直接読み込めない URL を修正する関数を使用しています。

URL が有効かどうかを確認するために、NSDataDetector に依存しています。

NSError *error = NULL;

NSDataDetector *detector = [NSDataDetector dataDetectorWithTypes:NSTextCheckingTypeLink error:&error];

NSUInteger numberOfMatches = [detector numberOfMatchesInString:URLString options:0 range:NSMakeRange(0, URLString.length)];

if (!error && numberOfMatches > 0) {

    // Valid URL
}
else {

    // Invalid URL

    // Custom code runs here to fix it...
}

これが機能しない例を次に示します。

"/d.scdn.com/images/photo.jpg" ---> "http://stockimages.com/d.scdn.com/images/photo.jpg"

これは変換を行う方法ですが、代わりに認識します

"/d.scdn.com/images/photo.jpg"

有効な URL として修正コードが実行されません

上記の例でわかるように、ドメイン名が文字列内にネストされていることがわかります。これを修正して、実際の URL の NSDataDetector をだますようにします。

この問題を解決するために numberOfMatches を利用する方法はありますか? 元の文字列との関係で有効な URL の一致の最小数のようなものはありますか?

4

0 に答える 0