2012-04-01 7 views
2

Ich versuche Ablesbarkeit (Dritter app) Kompatibilität mit meinem Web-Browser hinzuzufügen, und ich verfolgen ein Bookmarklet, eine Seite zu Ablesbarkeit speichern unten:(iOS) Lesezeichen in UIWebView ausführen?

javascript: (% 28function% 28% 29% 7Bwindow .baseUrl% 3D% 27http% 3A // www.readability.com% 27% 3Bwindow.readabilityToken% 3D% 27bbRmvVb9nTNRWSVEGb9yrcFP4USUHnTjk2EVWXjn% 27% 3Bvar% 20s% 3Ddocument.createElement% 28% 27script% 27% 29% 3Bs.setAttribute% 28% 27Typ% 27% 2C% 27text/Javascript% 27% 29% 3Bs.setAttribute% 28% 27Target% 27% 2C% 27UTF-8% 27% 29% 3Bs.setAttribute% 28% 27src% 27% 2CbaseUrl% 2B% 27/bookletlet/read.js% 27% 29% 3Bdocument.documentElement.appendChild% 28s% 29% 3B% 7D% 29% 28% 29)

aber ich kann nicht scheinen, es zur Arbeit zu bringen. Es funktioniert in Desktop Safari und Mobile/iPhone Safari. Aber beide Methoden unten nichts tun:

[webview stringByEvaluatingJavaScriptFromString: Lesbarkeit];

[Webansicht loadRequest: [NSURLAnfrage requestWithURL: [NSURL URLWithString: Lesbarkeit]]];

(Lesbarkeit ist ein String mit dem Wert oben)

Gibt es eine andere Methode Javascript Bookmarklets zu laufen, dass ich nicht bewusst, oder mache ich etwas falsch? Hilfe wird sehr geschätzt.

+0

Ihre Frage macht keinen Sinn. Was bedeutet "Lesbarkeitskompatibilität mit meinem Webbrowser hinzufügen"? Woher kommt 'webview stringByEvaluatingJavaScriptFromString:'? –

+0

Lesbarkeit ist eine beliebte App von Drittanbietern, die Webseiten für das Offline-Lesen speichert. [webview stringByEvaluatingJavaScriptFromString:] ist eine objektive C-Funktion, die ein UIWebView-Objekt betrifft. – Greg

Antwort

1

Greg

Sie dieser Fehler bekam, weil die JavaScript-URL codiert ist, sollten Sie die JavaScript-Zeichenfolge entschlüsseln, (kann man NSURL verwenden, um die Zeichenfolge übergeben, so dass er durch NSURL codiert wurde)

Dann verwenden Sie die Webview stringByEvaluatingJavaScriptFromString, diese Lösung funktioniert gut

-(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]]; 
    } 
} 
0

Sie müssen wahrscheinlich ihre API verwenden. Was Sie versuchen, wird wahrscheinlich aus Sicherheitsgründen verhindert, und Sie müssen Ihren eigenen API-Schlüssel in die Anfrage aufnehmen.

+0

Wenn ich mir ihre API-Seite anschaue, bin ich völlig verloren, wie ich sie implementieren kann. Könnten Sie mir in die richtige Richtung weisen (in Bezug darauf, welche Dinge ich untersuchen sollte)? – Greg