2017-04-20 7 views
4

私は、私は、サーバーからhtmlファイルをダウンロードしuiwebviewでそれを示したのですアプリケーションを持っている。このようjavascriptファイルがロードされておらず、stringByEvaluatingJavaScriptFromStringも実行されていませんか?

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask ,YES); 
NSString *documentsDirectory = [paths firstObject]; 
NSString *path = [documentsDirectory stringByAppendingPathComponent:[dictionary valueForKey:@"htmlfilename"]]; 

NSError *err; 
NSString *html = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&err]; 

[self.webview loadHTMLString:html baseURL:[NSURL fileURLWithPath:path]]; 

Didfinishloadでその後、私は次のように自分のアプリケーションバンドルに追加された1 JSファイルをロードしていますそのボタンのクリック時に、私はstringByEvaluatingJavaScriptFromStringを呼び出していますが、それは働いていないの後、この

NSString *javaScript=[NSString stringWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"foo" ofType:@"js"] encoding:NSUTF8StringEncoding error:nil]; 

[webview stringByEvaluatingJavaScriptFromString:javaScript]; 

。それでもjavascriptファイル自体はロードされません。誰も私にこれを案内できますか?

+0

これはpayrollのWebview –

+0

で使用されているjavascript swiftまたはobjective cブリッジフレームワークまたはライブラリを使用する必要があります。foo.jsのコンテンツを共有できますか?おそらく、そのコードは関数を宣言しているだけで、呼び出すことはできません。 –

+0

あなたがもっと説明すると、より良い回答が得られるかもしれません。 「うまくいきません」と私たちにはあまり言いません。あなたは "そのjavascriptファイル自体が読み込まれていない"と言うが、どのように知っていますか?私はあなたがボタンを押す際に読み込まれる2番目のjavascriptファイルについて話していると仮定します。しかし、あなたはそのコードを表示しません。何が間違っているのかを判断しようとしましたか? – fishinear

答えて

0

JavaScriptCore Frameworkを使用して、ネイティブiOS内でJavaScriptを操作するようにしてください。このフレームワークは、WebKitのJavaScriptエンジンへのアクセスを提供します。以前のこのフレームワークではMACをサポートしていましたが、現在はiOSをサポートしており、javascriptとswift/objective-cの相互運用性を実現しています。詳細については、以下のリンクを参照してください。

https://www.raywenderlich.com/124075/javascriptcore-tutorial

これは、あなたの質問の理解に基づいて、私の考えです。しかし、詳細がある場合は、私は他のソリューションを提供しようとしています。

ハッピーコーディング!

関連する問題