<web-view /> コンポーネントは HTML5 ページを保持し、ミニプログラムページ全体を自動的に塗りつぶします。各ページには、1 つの <web-view /> しか含めることができません。複数の <web-view /> コンポーネントをレンダリングしないでください。ページ全体が自動的に塗りつぶされ、他のコンポーネントが覆われてしまいます。
このコンポーネントは、基本ライブラリ 1.6.0 以降のバージョンに適用されます。以前のバージョンでは、互換性の問題を解決するための操作を実行する必要があります。操作については、「ミニプログラム基本ライブラリの説明」をご参照ください。
属性 | タイプ | デフォルト値 | 説明 |
src | 文字列 | 該当なし |
|
onMessage | EventHandle | 該当なし | Web ページが postMessage |
コードサンプル
<!-- axml -->
<! -- Alipay ホームページを指す web-view -->
<web-view src="https://ds.alipay.com/" onMessage="test"></web-view>関連 API
<web-view /> HTML5 ページでは、https://appx/web-view.min.js を手動で導入できます(このリンクには mPaaS クライアントからのみアクセスできます)。ミニプログラムページに戻るための関連 API が提供されています。以下の API がサポートされています。
API タイプ | API 名 | 説明 |
ナビゲーションバー | 現在のページを保持し、アプリケーション内の指定されたページにリダイレクトします。 | |
ナビゲーションバー | 現在のページを閉じて、前のページに戻ります。 | |
ナビゲーションバー | 指定された tabBar ページにリダイレクトし、tabBar 以外のすべてのページを閉じます。 | |
ナビゲーションバー | 現在のすべてのページを閉じて、アプリケーション内の指定されたページにリダイレクトします。 | |
ナビゲーションバー | 現在のページを閉じて、アプリケーション内の指定されたページにリダイレクトします。 | |
画像 | 写真を撮るか、モバイルアルバムから選択します。 | |
画像 | 画像をプレビューします。 | |
位置情報 | my.getLocation | ユーザーの現在の地理位置情報を取得します。 |
位置情報 | my.openLocation | 組み込みマップを使用して位置情報を表示します。 |
インタラクションフィードバック | アラートボックス。 | |
インタラクションフィードバック | 読み込みリマインダーを表示します。 | |
インタラクションフィードバック | 読み込みリマインダーを非表示にします。 | |
キャッシュ | ローカルキャッシュで指定されたキーにデータを保存し、キーの元のデータを上書きします。 | |
キャッシュ | キャッシュデータを取得します。 | |
キャッシュ | キャッシュデータを削除します。 | |
キャッシュ | ローカルキャッシュデータを削除します。 | |
キャッシュ | 現在のストレージに関する情報を非同期で取得します。 | |
ネットワークステータス | 現在のネットワークステータスを取得します。 | |
ミニプログラムへのメッセージ送信 | my.postMessage | ミニプログラムにメッセージを送信します。メッセージは、JSON 形式の 1 つまたは複数のカスタムキーと値データのセットにすることができます。たとえば、my.postMessage({name:”test web-view”}) などです。 |
ミニプログラムから送信されたメッセージの監視 | my.onMessage | ミニプログラムから送信されたメッセージを監視します。web-view コンポーネントコントロール。 |
現在の環境の取得 | my.getEnv | 現在の環境を取得します。 |
コードサンプル
<web-view />HTML5 ページ:<!-- html --> <script type="text/javascript" src="https://appx/web-view.min.js"></script> // HTML5 ページを mPaaS 以外のクライアントで同時に使用する必要がある場合は、リクエストの 404 エラーを回避するために、次のコード記述方法を参照してください。 // HTML head で次のスクリプトを実行します。 <script> if (navigator.userAgent.indexOf('AlipayClient') > -1 || navigator.userAgent.indexOf('mPaaSClient') > -1) { document.writeln('<script src="https://appx/web-view.min.js"' + '>' + '<' + '/' + 'script>'); } // javascript my.navigateTo({url: '../get-user-info/get-user-info'}); // Web ページは postMessage を使用してミニプログラムにメッセージを送信します。 my.postMessage({name:"test web-view"}); // ミニプログラムからメッセージを受信します。 my.onMessage = function(e) { console.log(e); //{'sendToWebView': '1'} } // ミニプログラム環境で実行されているかどうかを判断します。 my.getEnv(function(res) { console.log(res.miniprogram) // true }); my.startShare(); </script>my.postMessageを使用してメッセージが送信されると、ミニプログラムページはonMessageによって構成されたメソッドを実行します。// ミニプログラムページに対応する page.js は、test メソッドを宣言します。 // page.axml の web-view コンポーネントには、onMessage="test" が構成されています。 // したがって、Web ページが my.postMessage を実行すると、test メソッドが実行されます。 Page({ onLoad(e){ this.webViewContext = my.createWebViewContext('web-view-1'); }, test(e){ my.alert({ content:JSON.stringify(e.detail), }); this.webViewContext.postMessage({'sendToWebView': '1'}); }, )};my.getEnvコードサンプル:// ミニプログラム環境で実行されているかどうかを判断します。 my.getEnv(function(res){ console.log(res.miniprogram); //true });現在の
<web-view />を共有するときに、その URL を取得できます。つまり、onShareAppMessageコールバック中にwebViewUrlパラメーターが返されます。Page({ onShareAppMessage(options) { console.log(options.webViewUrl) } });
よくある質問
HTML5 ページはどのようにミニプログラムに情報を渡しますか?
HTML5 ページは、my.postMessage インターフェースを使用してデータを送信します。コードサンプルは次のとおりです。
my.postMessage({key1:"value1",key2:"value2"});ミニプログラムはどのように HTML5 ページに情報を渡しますか?
<web-view /> は双方向通信機能をサポートしています。詳細については、「Web-view コンポーネントコントロール」をご参照ください。
web-view コンポーネントでミニプログラムに戻るにはどうすればよいですか?
<web-view /> HTML5 ページでは、https://appx/web-view.min.js を手動で導入できます(このリンクには mPaaS クライアントからのみアクセスできます)。次に、my.navigateTo インターフェースを使用します。
ミニプログラムの chooseImage インターフェースを使用する場合、HTML5 ページで画像をアップロードするにはどうすればよいですか?
取得した画像のパスは、my.postMessage() を使用して関連データがミニプログラムに送信された後にアップロードできます。