objective-c - 检查 URL 是否为本地文件?

标签 objective-c ios cocoa-touch uiwebview

我正在尝试使用以下代码检查 UIWebView 中的当前 URL:

- (void)webViewDidFinishLoad:(UIWebView *)webView {

    NSString *currentURL = webView.request.URL.absoluteString;

    NSLog(@"Current URL: %@", currentURL);

    NSString *loginpage = @"file:///var/mobile/Applications/652BAC0C-DEAE-4695-9195-BE617B9D5106/School%20VLE%20Business.app/login.html";

    if([currentURL isEqualToString:loginpage])
    {
        NSLog(@"Inputting user details...");

        NSString *result;
        result = [webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"$('#usernamefield').val('%@');", username]];
        result = [webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"$('#passwordfield').val('%@');", password]];
        result = [webView stringByEvaluatingJavaScriptFromString:@"$('#submitbutton').click();"];

        NSLog(@"Logged in!");

    }
}

但是本地 URL 中的代码(652BAC0C-DEAE-4695-9195-BE617B9D5106 对我来说)对每个人来说都不一样,所以我怎样才能做同样的检查但是没有长代码?

最佳答案

这将作为确定给定 URL 是来自本地文件系统还是正在远程加载的更通用的解决方案:-

NSString *str = @"file://var/mobile/Applications/652BAC0C-DEAE-4695-9195-BE617B9D5106/School%20VLE%20Business.app/login.html";
NSURL *url = [NSURL URLWithString:str];
if ([[url scheme] isEqualToString:@"file"]) {
    // URL is a (local) file...
}

(这回答了您问题的主题我如何检查 URL 是否为本地文件?)

关于objective-c - 检查 URL 是否为本地文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7888706/

相关文章:

objective-c - 构建 iOS 应用程序后退出代码 1 错误

iphone - 为什么我的触摸坐标无法在屏幕上正确映射?

ios - 我什么时候必须给 Magical Record 一个上下文?

iphone - 我的 UIViewController 怎么知道是谁把它放到堆栈上的?

ios - UIButton - 默认状态下的图像,选中状态下的标题

ios - 迁移到惯用的 Swift 2 的 list (也就是 Swift 2 转换指南在哪里)?

ios - 非 -'@objc' 方法 'paymentAuthorizationViewControllerDidFinish' 不满足 '@objc' 协议(protocol)的要求

iphone - 如何为我的 View 调整大小设置动画?

objective-c - 应用程序在快速退出+重启时崩溃

ios - 确定 iOS 应用程序是否通过 Siri 启动