2014-09-16 4 views
8

Ho qualche problema con l'esecuzione di una webapp in una WKWebView (in particolare: alcuni pulsanti non rispondono). Ho usato come guida this tutorial e ho avuto successo con la visualizzazione web della mia webapp. Quindi ora Voglio eseguire il debug del codice javascript.Come eseguire il debug del codice javascript all'interno di una WKWebView

So che la webapp funziona, dal momento che l'ho provato sia in una web view di Android che in innumerevoli browser (incluso il safari sul simulatore di iPad che sto usando). Dopo un po 'di ricerca su Google, ho scoperto how to debug javascript inside a UIWebView using Safari. Purtroppo questo non sembra funzionare con il nuovo WKWebView.

Quando arrivo a Develop->iPad Simulator Mi è stato detto che non ci sono "Nessuna applicazione ispezionabile". Ho provato la stessa cosa con una semplice app con UIWebView e il debug di Safari funziona perfettamente lì.

C'è un modo per eseguire il debug di codice javascript in un WKWebView?

di riprodurre i miei problemi (usando SWIFT), avviare un nuovo progetto unico schermo in Xcode 6, copiare il codice (per gentile concessione di kinderas) fornite di seguito nel file ViewController.swift e trascinare lo sbocco al View sotto View Controller nella struttura del documento nel file Main.storyboard. Fare riferimento al tutorial che ho collegato in precedenza in caso di confusione.

import UIKit 
import WebKit 

class ViewController: UIViewController { 

    @IBOutlet var containerView : UIView! = nil 
    var webView: WKWebView? 

    override func loadView() { 
     super.loadView() 

     self.webView = WKWebView() 
     self.view = self.webView! 
    } 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     var url = NSURL(string:"http://www.kinderas.com/") 
     var req = NSURLRequest(URL:url) 
     self.webView!.loadRequest(req) 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
    } 

} 

risposta

15

UPDATE: 2017/09/11

versioni recenti di Safari può fare questo. Basta attivare la develop menu in Safari - developer.apple.com

VECCHIO:

È necessario installare il nightly build of Safari e usare quella. Stavo avendo lo stesso problema con un'app che sto sviluppando. Una volta installato il build notturno, ora lo uso e tutte le mie WKWebViews vengono visualizzate nel menu di sviluppo.

Spero che sia la parte che ti mancava!

+0

Grazie, ha funzionato un fascino. – overactor

+0

Nell'ultima build notturna non vedo WKWebViews. Devo abilitare qualcosa? – Gapipro

+0

@Gapiro è necessario abilitare il [menu sviluppo] (https://developer.apple.com/library/mac/documentation/AppleApplications/Conceptual/Safari_Developer_Guide/GettingStarted/GettingStarted.html) in Safari – Hugo

2

Si può provare http://jsconsole.com/

eseguire: ascoltare e ti dà uno script tag per incollare nella tua pagina web.

Ogni console.log presente in quella pagina darà il proprio output a questa pagina.

Se si chiude la pagina JSConsole, la prossima volta si dovrebbe cambiare script src nel codice html, ma è possibile ascoltare quello script src troppo:

:listen XXXXX-XXXXX-XXXX-XXXXX 

spero che aiuta.

+0

Questa potrebbe essere la soluzione giusta per gli altri, ma avevo bisogno di un modo per eseguire il debug senza toccare il codice javascript. – overactor

+0

Ok, non preoccuparti. – Biribu

+0

Sembra che jsconsole.com ora sia rotto,: oggi l'ascolto non dà alcun risultato. –

0

aprire il sito Web o la pagina html nella propria visualizzazione Web, quindi aprire Safari. fai clic su sviluppa, quindi vai al simulatore e troverai il titolo del tuo sito web lì. una volta aperto, vedrai il javascript debugger, la console e tutto il resto che puoi sognare.

Problemi correlati