W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
使用者在前端頁面點擊網(wǎng)頁中的鏈接時,Web組件默認(rèn)會自動打開并加載目標(biāo)網(wǎng)址。當(dāng)前端頁面替換為新的加載鏈接時,會自動記錄已經(jīng)訪問的網(wǎng)頁地址??梢酝ㄟ^forward()和backward()接口向前/向后瀏覽上一個/下一個歷史記錄。
- // xxx.ets
- import web_webview from '@ohos.web.webview';
- @Entry
- @Component
- struct WebComponent {
- webviewController: web_webview.WebviewController = new web_webview.WebviewController();
- build() {
- Column() {
- Button('loadData')
- .onClick(() => {
- if (this.webviewController.accessBackward()) {
- this.webviewController.backward();
- return true;
- }
- })
- Web({ src: 'https://www.example.com/cn/', controller: this.webviewController})
- }
- }
- }
如果存在歷史記錄,accessBackward()接口會返回true。同樣,您可以使用accessForward()接口檢查是否存在前進(jìn)的歷史記錄。如果您不執(zhí)行檢查,那么當(dāng)用戶瀏覽到歷史記錄的末尾時,調(diào)用forward()和backward()接口時將不執(zhí)行任何操作。
當(dāng)點擊網(wǎng)頁中的鏈接需要跳轉(zhuǎn)到應(yīng)用內(nèi)其他頁面時,可以通過使用Web組件的onUrlLoadIntercept()接口來實現(xiàn)。
在下面的示例中,應(yīng)用首頁Index.ets加載前端頁面route.html,在前端route.html頁面點擊超鏈接,可跳轉(zhuǎn)到應(yīng)用的ProfilePage.ets頁面。
- // index.ets
- import web_webview from '@ohos.web.webview';
- import router from '@ohos.router';
- @Entry
- @Component
- struct WebComponent {
- webviewController: web_webview.WebviewController = new web_webview.WebviewController();
- build() {
- Column() {
- Web({ src: $rawfile('route.html'), controller: this.webviewController })
- .onUrlLoadIntercept((event) => {
- let url: string = event.data as string;
- if (url.indexOf('native://') === 0) {
- // 跳轉(zhuǎn)其他界面
- router.pushUrl({ url:url.substring(9) })
- return true;
- }
- return false;
- })
- }
- }
- }
- <!-- route.html -->
- <!DOCTYPE html>
- <html>
- <body>
- <div>
- <a href="native://pages/ProfilePage">個人中心</a>
- </div>
- </body>
- </html>
- @Entry
- @Component
- struct ProfilePage {
- @State message: string = 'Hello World';
- build() {
- Column() {
- Text(this.message)
- .fontSize(20)
- }
- }
- }
Web組件可以實現(xiàn)點擊前端頁面超鏈接跳轉(zhuǎn)到其他應(yīng)用。
在下面的示例中,點擊call.html前端頁面中的超連接,跳轉(zhuǎn)到電話應(yīng)用的撥號界面。
- // xxx.ets
- import web_webview from '@ohos.web.webview';
- import call from '@ohos.telephony.call';
- @Entry
- @Component
- struct WebComponent {
- webviewController: web_webview.WebviewController = new web_webview.WebviewController();
- build() {
- Column() {
- Web({ src: $rawfile('xxx.html'), controller: this.webviewController})
- .onUrlLoadIntercept((event) => {
- let url: string = event.data as string;
- // 判斷鏈接是否為撥號鏈接
- if (url.indexOf('tel://') === 0) {
- // 跳轉(zhuǎn)撥號界面
- call.makeCall(url.substring(6), (err) => {
- if (!err) {
- console.info('make call succeeded.');
- } else {
- console.info('make call fail, err is:' + JSON.stringify(err));
- }
- });
- return true;
- }
- return false;
- })
- }
- }
- }
- <!-- call.html -->
- <!DOCTYPE html>
- <html>
- <body>
- <div>
- <a href="tel://xxx xxxx xxx">撥打電話</a>
- </div>
- </body>
- </html>
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: