Javascript (iOS)是否在UIWebView中运行bookmarklet?

Javascript (iOS)是否在UIWebView中运行bookmarklet?,javascript,iphone,ios,uiwebview,bookmarklet,Javascript,Iphone,Ios,Uiwebview,Bookmarklet,我正在尝试为我的web浏览器添加可读性(第三方应用程序)兼容性,我找到了一个bookmarklet以将页面保存为可读性: javascript:(%28function%28%29%7Bwindow.baseUrl%3D%27http%3A//www.readability.com%27%3bWindows.readabilityToken%3D%27bbRmvVb9nTNRWSVEGb9yrcFP4USUHnTjk2EVWXjn%27%3Bvar%20s%3document.createEle

我正在尝试为我的web浏览器添加可读性(第三方应用程序)兼容性,我找到了一个bookmarklet以将页面保存为可读性:

javascript:(%28function%28%29%7Bwindow.baseUrl%3D%27http%3A//www.readability.com%27%3bWindows.readabilityToken%3D%27bbRmvVb9nTNRWSVEGb9yrcFP4USUHnTjk2EVWXjn%27%3Bvar%20s%3document.createElement%28%27script%27%29%3Bs.setAttribute%28%27type%27%2C%27text/javascript%27%29%3Bs.setAttribute%28%27%27charset%27%27%2C%27UTF-8%29%3Bs.setAttribute%2cbs%%27/bookmarklet/read.js%27%29%3Bdocument.documentElement.appendChild%28s%29%3B%7D%29%28%29)

但是,我似乎无法让它工作。它在桌面Safari和mobile/iPhone Safari中工作。但以下两种方法都不起作用:

[webview stringByEvaluatingJavaScriptFromString:可读性]

[webview loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:可读性]]

(可读性是具有上述值的字符串)


是否有另一种运行javascript bookmarklets的方法我不知道或者我做错了什么?非常感谢您的帮助。

您可能需要使用它们的方法。出于安全原因,您尝试执行的操作可能会被阻止,您需要在请求中放入自己的API密钥。

Greg

出现此错误是因为javascript url已编码,您应该解码javascript字符串(可能是您使用NSURL传递字符串,因此它是由NSURL编码的)

然后使用webview stringByEvaluatingJavaScriptFromString,此解决方案运行良好

-(void)loadUrl:(NSURL*)url
{
    if ([[url scheme] isEqualToString:@"javascript"])

    {
        NSRange range = [[url absoluteString] rangeOfString:@"javascript:"];
        NSString *javaScriptString = [[[url absoluteString] substringFromIndex:range.location + range.length] URLDecodedString];
        [self stringByEvaluatingJavaScriptFromString:javaScriptString];
    }
    else
    {
        [self loadRequest:[NSURLRequest requestWithURL:url]];
    }
}

你的问题没有任何意义。“我正在尝试添加与我的web浏览器的可读性兼容性”是什么意思?webview StringByEvaluationJavaScriptFromString:来自哪里?可读性是一种流行的第三方应用程序,它可以保存网页以供脱机阅读。[webview StringByEvaluationJavaScriptFromString:]是一个影响UIWebView对象的objective C函数。查看他们的API页面,我完全不知道如何实现它。你能给我指出正确的方向吗(关于我应该研究如何做的事情)?