标签: inappbrowser

处理Phonegap InAppBrowser上的Android后退按钮

我想在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)

android cordova inappbrowser

8
推荐指数
3
解决办法
4万
查看次数

如何在Phonegap应用程序中关闭InAppBrowser本身?

我正在开发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)

javascript cordova inappbrowser

8
推荐指数
3
解决办法
2万
查看次数

InAppBrowser注入脚本(使用executeScript)

使用{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"});

ios cordova inappbrowser

7
推荐指数
1
解决办法
2705
查看次数

如何在Cordova InAppBrowser中设置标头?

在我使用离子框架(基于Cordova)构建的应用程序中,我使用Cordova InAppBrowser访问网址,但我想为该请求设置自定义标头.我已经阅读了自述文件和其他一些网站,但我找不到任何东西.

有谁知道如何在Cordova InAppBrowser中设置标头?欢迎所有提示!

http-headers cordova inappbrowser ionic-framework

7
推荐指数
1
解决办法
2908
查看次数

如何在Cordova的InAppBrowser中优雅地中断加载某个URL并在系统浏览器中打开它?

我正在使用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)

到目前为止,这有点奏效,但有些怪癖:

  1. 当用户单击WhatsApp链接(通过触发警报进行检查)时,事件立即触发,系统浏览器实际打开需要两到三秒钟.
  2. 在等待这2-3秒并返回应用程序时,用户会看到一个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)

javascript cordova whatsapp inappbrowser

7
推荐指数
1
解决办法
2143
查看次数

从Ionic应用程序的网站嵌入购买渠道

我正在改进我的离子应用程序,因此用户现在可以购买产品.

但是这些产品也是相应网站上的相同产品,我想将此网站的"购买渠道"或"支付网关"嵌入到我的离子应用程序中.主要是因为漏斗很复杂,因为产品是"定制的",具有很多属性.

这可能与inappbrowser离子插件有关吗?付款是否足够安全(https)?是否可以通过Paypal进行第三方付款?

谢谢

payment in-app-purchase paypal-adaptive-payments inappbrowser ionic-framework

7
推荐指数
1
解决办法
160
查看次数

cordova InAppBrowser不适用于_system参数

我正在尝试使用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只需在与应用程序相同的窗口中打开页面即可。如何在设备的系统浏览器中打开付款页面?

javascript android cordova inappbrowser

7
推荐指数
1
解决办法
354
查看次数

在应用程序浏览器、Web 视图和嵌入式浏览器中,有什么区别?

谁能分享一下应用内浏览器、Web 视图或嵌入式浏览器的确切定义?

  • Google 使用术语embedded webview“或” webview
  • Facebook 使用术语embedded browser.
  • 据我所知,我使用这个术语in-app browser来表示 tiktok/facebook/instagram 的自定义浏览器。

我查了一下,好像有这三个术语:

  • 在应用程序浏览器中
  • 网页浏览
  • 嵌入式浏览器

指的是同一件事。

这3个术语有什么区别吗?或者这只是同一件事的 3 个不同的词吗?

webview embedded-browser inappbrowser

7
推荐指数
1
解决办法
1万
查看次数

是否启用了InAppBrowser IPv6?

我搜索了几个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),则这些网址按预期工作.

请帮忙.

ipv6 cordova inappbrowser

6
推荐指数
0
解决办法
501
查看次数

Cordova InAppBrowser 上的 Div 覆盖

我正在使用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)

html css cordova inappbrowser

6
推荐指数
0
解决办法
1510
查看次数