- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Cordova 应用程序中从 typescript 文件运行一个 InAppBrowser 实例。我的 package.json 中连接了最新的 InAppBrowser 插件。当我在此 InAppBrowser 的 loadStop 事件上添加监听器时。它不执行脚本说'webkit 未定义'。我找不到与之相关的答案。有没有人知道如何解决这个问题?
代码 fragment
switchHybridApp.on("loadstop").subscribe((event: InAppBrowserEvent) => {
console.log("Here I am 3");
console.log('loadstop has been fired'); // this fires
debugger;
// when this has been executed, `webkit` variable doesn't exist inside of the `inappbrowser`
// instance
switchHybridApp.executeScript({ code: "\
var message = 'this is the message';\
var messageObj = {my_message: message};\
var stringifiedMessageObj = JSON.stringify(messageObj);\
webkit.messageHandlers.cordova_iab.postMessage(stringifiedMessageObj);"
});
}
);
我尝试过但没有成功的解决方案
(任何窗口).webkit....
(窗口).webkit....
最佳答案
好的,我在一年后来到这里来回答这个问题以及我是如何解决它的。所以我有无限的运行间隔来使用 executeScript 检查 native 和 inappbrowser 的 localStorage,但这是一个非常糟糕的选择。现在 InAppBrowser 已经实现了“postMessage”。现在的通信非常简单。
我所做的是,我在 AppBrowser 中打开了网络应用程序,我在我的 ts 文件中运行了它。
(window as any).webkit.messageHandlers.cordova_iab.postMessage(sendToNative);
请注意,objToSend 必须是一个 JSON 对象。传递一个简单的字符串是行不通的。
你可以像这样创建对象 -
const sendToNative= 'frontCameraOpen';
const sendToNative= {message: sendToNative};
const stringifiedMessageObj = JSON.stringify(sendToNative);
现在从原生端,像这样使用这个事件监听器
inAppBrowser.on('message').subscribe((dataFromIAB) => {
alert(dataFromIAB.data.sendToNative);
});
感谢@DaveAlden 提供此功能,一年前我做错了,哈哈。
关于android - webkit 未定义 : InAppBrowser Cordova,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56124899/
我有一个移动应用,可以使用 InAppBrowser (IAB) 在应用内打开外部 URL 链接。 但是,当我在 IAB 中打开的 Web 包含通常会在弹出窗口/第二个窗口中打开的链接时,该链接不会被
我的 Ionic-v1 应用程序中有一个带有 map 的 url 的外部链接。目前我的 InAppBrowser 中的关闭按钮已激活,我可以从我的应用程序中再次打开 URL。但是,当然不会记住 map
我在 IOS 中的 InAppBrowser 上的 Cordova 中遇到问题,当我以横向模式打开 InAppBrowser,并使用“完成”按钮再次返回到我的应用程序时,会显示空白屏幕。 Cordov
我知道有一千个线程在谈论这个话题,但事实是,真正阅读它们并执行它们所说的内容,我找不到关键。而且..我已经阅读并尝试了很多。 我的问题如下。我正在使用 InAppBrowser 模块(InAppBro
我在使用 Cordova 的 InAppBrowser 插件时遇到问题,我似乎无法激活缩放。 我已将 InAppBrowser 插件添加到我的应用程序中,并且像这样调用它.. HTML:注意 - 我尝
我正在尝试自定义 Cordova InAppBrowser 以在 webView 中添加上边距。 我想使用应用内浏览器,但在屏幕顶部显示一个 50 像素的导航栏,并带有用于关闭 InAppBrowse
我正在使用 Ionic 和 ngCordova 创建构建混合应用程序。在应用程序登录工作流程中,我将一个页面从服务器返回到 InAppBrowser 插件。我需要从 Ionic 应用程序的返回页面中读
当我运行 cordova plugin list 时,我看到了已安装插件的列表,所以我想删除 cordova-plugin-inappbrowser 1.2.1 "InAppBrowser"。要删除
我正在使用 PhoneGap/Cordova 和 Ionic/Angular 以及 Firebase Simple Login for Facebook。我的登录页面上有一个按钮应该调用 auth.l
我已经使用 npm 安装了 Phonegap,我的应用程序运行良好,除了当我调用 window.open 启动网站时,它没有给我带有完成按钮的页脚,所以我的应用程序卡在了被调用的网页上. 我正在使用
我对 Ionic 和 Cordova 还很陌生,我正在使用 Cordova 创建一个应用程序。 我编写了代码来打开 InAppBrowser 窗口,以便通过 Google+ 共享链接。 但是,我的代码
以下是我目前正在使用的代码。我想了解如何收听 inAppBrowser 关闭事件?当某些人关闭 inAppBrowser 时,应用程序应显示某种警报消息。 根据 documentation 我必须使用
我正在从事一个项目,在该项目中我大量使用了 InAppBrowser查看不同的文档(PDF、DOC、DOCX)。我在 och docs.google.com 的帮助下做到了这一点, 文档存储在 fir
我想从我的cordova 应用程序打开一个外部webapp 并直接在 native 应用程序上处理webapp 事件。例如,当加载特定 URL 时,应用程序应通过调用函数来处理它。有谁知道这是否可能?
使用 Cordova/PhoneGap 3.3.0,我正在使用 FileTransfer 插件下载文件,然后尝试使用 InAppBrowser 插件打开它。 我可以成功下载文件 ,并将其放在临时目录中
我目前正在构建News Aggregator应用,并且正在使用InAppBrowser来使人们阅读文章。现在,我的问题是:是否可以删除URL和导航栏?另外,我可以更改“完成”按钮的文字吗? 请告诉我.
有没有办法使用 cordovas InAppBrowser 来引用页面上的元素并检测它们何时被按下?我引用的页面有一个后退按钮和一个关闭按钮,我需要知道按下了哪一个按钮,然后关闭 inAppBrows
我有一个 Cordova 应用程序,它是一个带有单个 HTML 文件的单页应用程序。 所有链接都应在系统浏览器中打开。我不需要“嵌入式”InAppBrowser,而是真正的 native 系统/外部浏
我正在开发一个cordova(android)应用程序,它使用inappbrowser加载网站(该应用程序将成为Play商店中的网站应用程序),问题是当我使用任何网站测试该应用程序时工作完美,但是当我
我想将一些对象数据传递给打开的窗口,不能用url中的参数传递。 我该怎么做?谢谢。 [更新] 现在我要做的是,在该 html 中实现一些函数 setSomeData(...),以设置一些值。因为我有一
我是一名优秀的程序员,十分优秀!