2017-01-29 4 views
0

webview elementをjavascriptを使用する汎用アプリで使用しようとしています。私の目的は、いくつかのウェブサイトを閲覧して自分のHTMLコンテンツに自分のコンテンツを追加することです。UWP:navigateToStringメソッドを使用したページがwebviewに表示されない

まず、webviewのsrc属性をwww.example.comに設定し、サイトを参照します。これは、webviewがサイトをブラウズできることを確認することでした。

次に、私は、HTMLを取得し、このようnavigateToString法を用いて、WebViewのためにそれをロードしようとした:

$.get(url, function (data) { 
     webView.navigateToString(data); 
    }); 

このページは(aperarentlyいくつかの.jsや.cssファイルがロードされない形状の外にロードされる原因またはブロックされている)、またはロードされていない場合もあります。

URLでページを読み込み、手動でこのようにHTMLを読み込むのはどういうことでしょうか。そして、私はこの問題を克服することができる回避策があります。

注:私はjsとhtmlの両方で新しいです。

+1

ダウンロードしたhmlで参照されているcssファイルとjsファイルは、相対パスまたは絶対パスを使用していますか?私はwebviewコントロールでhtml文字列を表示している場合、相対パスが動作するとは思わないでしょう。 –

答えて

1

通常、Webページは単一のHTMLファイルではありません。それが動作するようにするには、HTMLだけでなく、javascriptとcssファイルを取得する必要があります。 これは面倒な作業です。

ウェブから何かを開こうとしている場合、最も簡単な方法は、通常のnavigate()を実行してURIをパラメータとして使用し、ブラウザが実行するように「フル」ブラウズを実行することです。 CSS/JSの検索/読み込みはあなたのために行われます。

navigateToString()ローカルページを開くには良いパスですが、すべてのページの依存関係(css/js fiels)をローカルにホストするか、すべてのスタイルとコードをHTMLページそのもの。

+0

しかし、navigate()メソッドを使用すると、ブラウズされたドキュメントを変更することはできません。 –

+0

ページコードを直接変更することはできませんが、それはwebviewなので、invokeScriptAsync()を使用してページを変更するJavaScriptを実行することができます。 – Vincent

+0

はい、invokeScriptAsync()関数では、 htmlドキュメントで定義されています。私はhtmlドキュメントを変更することができないので、私はそれを呼び出すためのスクリプト関数を持っていません。私が作成したものではないHTMLファイルにスクリプトを添付する方法を知っていますか? –

関連する問題