Cordova Plugin inappbrowser:如何在Cordova Webview中使用Cordova?

时间:2019-06-26 02:48:16

标签: cordova ionic-framework cordova-plugins inappbrowser

  1. 我安装了插件:在App Browser中 https://ionicframework.com/docs/native/in-app-browser

文档在这里: https://github.com/apache/cordova-plugin-inappbrowser

  1. 动态地,我在以下目录中创建了一个HTML页面:this.file.dataDirectory

  2. 我尝试像这样在Webview上加载此页面:

导入

import { InAppBrowser } from '@ionic-native/in-app-browser/ngx';

构造器

constructor(private iab: InAppBrowser) {}

我的密码

const browser = this.iab.create( this.webview.convertFileSrc( this.file.dataDirectory + 'jojo/index.html' ) );

一切正常,没有问题。 我的页面jojo / index.html可以加载。

该页面已加载到Cordova WebView中

如果我没记错的话, 因为我没有设置“目标”值(该值仍然是“ _self”) 我的页面jojo / index.html已加载到Cordova WebView中。是吗?

参考:

enter image description here

所以...在我的页面上,我想使用离子功能(或cordova功能)。

我该怎么做?

PS:我已经检查了以下主题:Using cordova plugins in InAppBrowser,但情况不同。他们的目标是“ _blank”,因此它们的页面在InAppBrowser中打开。

我的配置

这是我的配置:

Ionic:

   ionic (Ionic CLI)             : 4.12.0 (/usr/local/lib/node_modules/ionic)
   Ionic Framework               : @ionic/angular 4.4.2
   @angular-devkit/build-angular : 0.13.9
   @angular-devkit/schematics    : 7.3.9
   @angular/cli                  : 7.3.9
   @ionic/angular-toolkit        : 1.5.1

Cordova:

   cordova (Cordova CLI) : 8.1.2 (cordova-lib@8.1.1)
   Cordova Platforms     : android 7.1.4, ios 4.5.5
   Cordova Plugins       : cordova-plugin-ionic-keyboard 2.1.3, cordova-plugin-ionic-webview 4.0.1, (and 11 other plugins)

System:

   Android SDK Tools : 26.1.1 (/Users/jojo/Library/Android/sdk)
   ios-deploy        : 2.0.0
   NodeJS            : v11.10.0 (/usr/local/bin/node)
   npm               : 6.9.0
   OS                : macOS Mojave
   Xcode             : Xcode 10.2.1 Build version 10E1001

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您不能直接从InAppBrowser窗口访问任何Cordova函数。相反,您需要使用({?1}}事件处理程序(仅可用)方法在InAppBrowser和Cordova WebView之间进行通信。

Check out this article,介绍如何使用InAppBrowser窗口实现message事件处理程序。在示例中,您从IAB向WebView发送 close 消息以指示Cordova关闭IAB,但是您可以更改它并发送所需的任何消息,以在WebView端执行不同的操作

这是 WebView 端的示例代码:

message

请参阅 InAppBrowser 端中有关JS代码的文章,并对其进行修改以适合您的需求。

请注意,必须使用inappbrowser插件的3.1.0-dev版本,此事件处理程序才能正常工作