我想在InAppBrowser上导航页面时禁用或覆盖Android Back按钮.我可以添加一个可以处理它的事件监听器吗?
编辑: 通过下面的@T_D查看答案提供的解决方案是我能得到的最接近的答案.似乎无法覆盖InAppBrowser中的按钮,因为在此插件上导航页面时,所有PhoneGap调整都停止工作.我无法找到任何其他解决方案而不是修改API库.如果这里有任何PhoneGap的人并且知道更多的东西,我会很高兴得到一些评论.谢谢.
我得到的最接近的:
var ref = window.open('http://apache.org', '_blank', 'location=yes');
ref.addEventListener("backbutton", function () { })
Run Code Online (Sandbox Code Playgroud) 我正在开发Phonegap应用程序,目前我正在使用InAppBrowser显示外部页面.在一些外部页面上,我放置了一个关闭按钮,我想关闭InAppBrowser本身.因为InAppBrowser显示这些页面,这就是为什么不能自己访问它的引用来关闭它,请不要建议我使用ChildBrowser插件.
window.close(); //Not Worked for me
or
iabRef.close(); //Also not Worked for me because iabRef is not accessible on InAppBrowser. It is created on Parent Window
Run Code Online (Sandbox Code Playgroud)
一些Android设备和iOS设备显示一个完成按钮来关闭它.除了iPad还显示完成按钮.但在Android平板电脑的情况下,没有任何按钮可以关闭它.
更新: -
这是我的完整代码: -
var iabRef = null;
function iabLoadStart(event) {
}
function iabLoadStop(event) {
}
function iabClose(event) {
iabRef.removeEventListener('loadstart', iabLoadStart);
iabRef.removeEventListener('loadstop', iabLoadStop);
iabRef.removeEventListener('exit', iabClose);
}
function startInAppB() {
var myURL=encodeURI('http://www.domain.com/some_path/mypage.html');
iabRef = window.open(myURL,'_blank', 'location=yes');
iabRef.addEventListener('loadstart', iabLoadStart);
iabRef.addEventListener('loadstop', iabLoadStop);
iabRef.addEventListener('exit', iabClose);
}
Run Code Online (Sandbox Code Playgroud) 使用{code: 'some code'}param的InAppBrowser js脚本注入工作正常但不适用于{file: 'local file url'}param.
var ref = window.open('http://apache.org', '_blank', 'location=yes');
ref.addEventListener('loadstop', function() {
ref.executeSript({file: "myscript.js"});
});
Run Code Online (Sandbox Code Playgroud)
如何使用文件参数注入脚本来注入我的本地js脚本?
这似乎是一个神秘复杂的事情,因为我有几行脚本,无法嵌入所有使用 ref.executeSript({codedetails, callback: "myscript.js"});
在我使用离子框架(基于Cordova)构建的应用程序中,我使用Cordova InAppBrowser访问网址,但我想为该请求设置自定义标头.我已经阅读了自述文件和其他一些网站,但我找不到任何东西.
有谁知道如何在Cordova InAppBrowser中设置标头?欢迎所有提示!
我正在使用Cordova的inappbrowser插件在我的应用程序中显示Web部件.在网站上,有共享链接,例如WhatsApp:
<a href="whatsapp://send?text=Check this out">Share on WhatsApp</a>
Run Code Online (Sandbox Code Playgroud)
现在,当在inappbrowser中单击这些链接时,它只是尝试加载whatsapp://send?...为URL并显示错误页面.
我想要做的是开放链接,首先whatsapp://使用给定系统的浏览器/ URI处理程序,因此它类似于在系统浏览器中单击此类链接时的行为.为此,我做了以下事情:
urlChanged = function(event) {
// when a "whatsapp://" link is clicked, open it in the system browser
if(event.url.startsWith("whatsapp://")) {
window.open(event.url, "_system");
return;
}
}
// Add an "loadstart" event listener to the inappbrowser:
browser.addEventListener("loadstart", urlChanged);
Run Code Online (Sandbox Code Playgroud)
到目前为止,这有点奏效,但有些怪癖:
whatsapp://无法打开链接的inappbrowser错误页面("未知网址方案").为了缓解第2点,我还在事件监听器中尝试了以下操作,但没有成功(行为完全相同):
urlChanged = function(event) {
if(event.url.startsWith("whatsapp://")) {
// stop loading the whatsapp:// link in inappbrowser
browser.stop();
// go back in history to display page where whatsapp:// …Run Code Online (Sandbox Code Playgroud) 我正在改进我的离子应用程序,因此用户现在可以购买产品.
但是这些产品也是相应网站上的相同产品,我想将此网站的"购买渠道"或"支付网关"嵌入到我的离子应用程序中.主要是因为漏斗很复杂,因为产品是"定制的",具有很多属性.
这可能与inappbrowser离子插件有关吗?付款是否足够安全(https)?是否可以通过Paypal进行第三方付款?
谢谢
payment in-app-purchase paypal-adaptive-payments inappbrowser ionic-framework
我正在尝试使用cordova InAppBrowser打开付款页面,我想在移动设备上的系统浏览器中打开该页面。我也尝试_blank参数,但是_blank只是在与应用程序相同的窗口中打开该页面。我也想通过Cordova InAppBrowser发送发帖请求。这是我的代码:
var redirect = 'https://SomeRef';
var pageContent = '<form id="FormID" action="https://SomeOtherRefs" method="post">' +
'<input type="hidden" name="RedirectURL" value="' + redirect + '">' +
'<input type="hidden" name="Token" value="' + dataVar + '">' +
'</form> <script type="text/javascript">document.getElementById("FormID").submit();</script>';
var pageContentUrl = 'data:text/html;base64,' + btoa(pageContent);
var browserRef = cordova.InAppBrowser.open(
pageContentUrl,
"_system",
"hidden=no,location=no,clearsessioncache=yes,clearcache=yes"
);
Run Code Online (Sandbox Code Playgroud)
_system参数对此没有任何作用,而_blank只需在与应用程序相同的窗口中打开页面即可。如何在设备的系统浏览器中打开付款页面?
谁能分享一下应用内浏览器、Web 视图或嵌入式浏览器的确切定义?
embedded webview“或” webview。embedded browser.in-app browser来表示 tiktok/facebook/instagram 的自定义浏览器。我查了一下,好像有这三个术语:
指的是同一件事。
这3个术语有什么区别吗?或者这只是同一件事的 3 个不同的词吗?
我搜索了几个foruns,如果InAppBrowser启用了IPv6,我没有找到任何具体信息.
当我使用:refWeb = cordova.InAppBrowser.open(url,'_ blank','location = yes','clearcache = yes','clearsessioncache = yes');
使用url = http://192.168.1.210,它正常工作,但如果url = http:// [2001 :: 123:1:2:3]则会显示一个错误的网页:ERR_NAME_NOT_RESOLVED
如果我在同一设备上使用本机浏览器(如Chrome),则这些网址按预期工作.
请帮忙.
我正在使用InAppBrowser-Plugin 开发Cordova 应用程序。我的想法是在 InAppBrowser 上显示一个 Div/Buttons 来执行 Cordova 本机代码。
问题是 InAppBrowser 插件将自己置于 z-index 的顶部。我如何定义调用 InAppBrowser 的 Div 的 z-index 并不重要。
我的代码:
<!DOCTYPE html>
Run Code Online (Sandbox Code Playgroud)
<meta name="format-detection" content="telephone=yes">
<meta name="msapplication-tap-highlight" content="no">
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width">
<link rel="stylesheet" type="text/css" href="http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css">
<link rel="stylesheet" type="text/css" href="css/index.css">
<body ng-controller="unserhombergController">
<div class="wrapper" id="wrapperID">
<div class="linkwrap" id="linkwrapID">
<div class="container">
<button class="overButton"></button>
</div>
</div>
<div class="myframe" id="myframeID" ng-init="inappbrowser()" style="position:fixed; top:0px; left:0px; bottom:0px; right:0px; width:100%; height:100%; border:none; margin:0; padding:0; overflow:hidden; z-index:-9999999999999999999999999999;">
<!--<iframe src="http://unser-homberg.de/" id="frame_id" style="position:fixed; …Run Code Online (Sandbox Code Playgroud) inappbrowser ×10
cordova ×8
javascript ×3
android ×2
css ×1
html ×1
http-headers ×1
ios ×1
ipv6 ×1
payment ×1
webview ×1
whatsapp ×1