文档在这里: https://github.com/apache/cordova-plugin-inappbrowser
动态地,我在以下目录中创建了一个HTML页面:this.file.dataDirectory
我尝试像这样在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中。是吗?
参考:
所以...在我的页面上,我想使用离子功能(或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
非常感谢您的帮助。
答案 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版本,此事件处理程序才能正常工作。