2011-08-02 2 views
3

私はこの例を使用しようとしていますhttps://gist.github.com/811993;私は私の両親のために、ウェブサイトwww.baomoi.comのためのカスタムCSSファイルを使用して、それをもっと最小限かつ高コントラストにすることを試みています。このコード例は、ロード時に強制終了させます。/resourcesフォルダにstyles.cssがあります。エラーの原因を特定するにはどうすればよいですか?UIwebviewのCSS注入

ご協力いただきありがとうございます。デバッグで

https://gist.github.com/811993 

これは私が取得していますものです: E/KrollCallback(382):($ 1クロール:アプリ://app.js)[234,4575]エラー、呼び出しを:[callMethod UI.WebView .UI.WebView:event:load null]、メッセージ:sizeは> 0以上である必要があります。 E/KrollCallback(382):java.lang.IllegalArgumentException:sizeは> 0E/AndroidRuntime(345)でなければなりません:org.appcelerator。 (0)E/AndroidRuntime(345):java.io.AlllegalArgumentException:サイズが> = 0以上である必要があります。 ByteArrayOutputStream。(ByteArrayOutputStream.java:67) E/AndroidRuntime(345):org.appcelerator.titanium.util.TiStreamHelperにあります。 toByteArray(TiStreamHelper.java:106) E/AndroidRuntime(345):org.appcelerator.titanium.TiBlob.getBytesで(TiBlob.java:120)

答えて

3

の代わりにあなたのjavascriptを注入するurlプロパティを使用して、あなたがすべきevalJSを使用します。

あなたはファイルからローカルのCSSデータを読み取り、このように挿入することができます

// read the css content from styles.css  
var cssContent = Titanium.Filesystem.getFile('styles.css'); 

// make it available as a variable in the webview  
webview.evalJS("var myCssContent = " + JSON.stringify(String(cssContent.read())) + ";"); 

// create the style element with the css content  
webview.evalJS("var s = document.createElement('style'); s.setAttribute('type', 'text/css'); s.innerHTML = myCssContent; document.getElementsByTagName('head')[0].appendChild(s);"); 
関連する問題