GVKun编程网logo

cordova – InAppBrowser有时会为空/空白(cordova-plugin-background-mode)

5

对于cordova–InAppBrowser有时会为空/空白感兴趣的读者,本文将提供您所需要的所有信息,我们将详细讲解cordova-plugin-background-mode,并且为您提供关于an

对于cordova – InAppBrowser有时会为空/空白感兴趣的读者,本文将提供您所需要的所有信息,我们将详细讲解cordova-plugin-background-mode,并且为您提供关于android – 在InAppBrowser Ionic中加载Spinner、android-phonegap 2.3.0中的InAppBrowser、angular.js codovar InAppBrowser跳转、Cordova InAppBrowser 设置自定义分析的宝贵知识。

本文目录一览:

cordova – InAppBrowser有时会为空/空白(cordova-plugin-background-mode)

cordova – InAppBrowser有时会为空/空白(cordova-plugin-background-mode)

我正在开发一个项目,我在其中大量使用InAppbrowser来查看不同的文档(PDF,DOC,DOCX).我使用help doc docs.google.com执行此操作,文档存储在firebase-storage中.
大部分时间它在我的 Android设备上运行良好!但有时我得到的只是一个空的白色屏幕,我必须按后退按钮关闭InAppbrowser,然后重新打开它以显示文档.

在Chrome开发人员工具中远程调试这种奇怪的行为时,我看到loadstart和loadstop事件被正确调用:

Chrome developer tools,when remotely debugging the app,while opening InAppBrowser

当我在空白/白色InAppbrowser中查看HTML时,我看到空< body> -tags:

Chrome developer tools,looking at the HTML for the empty white InAppBrowser

用于打开InAppbrowser的代码:

import { Injectable } from ''@angular/core'';
import { Platform } from ''ionic-angular'';
import { InAppbrowser,InAppbrowserObject } from ''@ionic-native/in-app-browser'';
import { Screenorientation } from ''@ionic-native/screen-orientation'';
import { LoaderService } from ''./loader-service'';
import * as firebase from ''firebase'';

@Injectable()
export class FirebaseStorageService{
    browserOptions: string;
    browser: InAppbrowserObject;

    constructor(
        private iab: InAppbrowser,private loaderService:LoaderService,private platform: Platform,private screenorientation: Screenorientation
    ){
        this.browserOptions = ''zoom=no,location=no,useWideViewPort=no,hidden=yes,enableViewportScale=yes'';
    }

    viewPdf(path: string,loadText?:string):Promise<any>{
        this.showLoader(loadText);
        return new Promise<any>((resolve,reject) => {
            firebase.storage().ref().child(path).getDownloadURL().then(url => {
                let newURL = ''https://docs.google.com/gview?&url='' + encodeURIComponent(url);
                this.startbrowser(newURL);
                resolve();
            })
            .catch(err => {
                if(this.platform.is(''cordova'')){
                    this.loaderService.dismissLoader();
                }
                reject(err);
            });
        })
    }

    private startbrowser(path:string):void{
        this.browser = this.iab.create(path,''_blank'',this.browserOptions);
        if(this.platform.is(''cordova'')){
            this.handlebrowserSubscriptions();
            this.screenorientation.unlock();
        }
    }

    private handlebrowserSubscriptions():void{
        let stopSub = this.browser.on(''loadstop'').subscribe(event => {
            console.log(''loadstop'',event)
            this.loaderService.dismissLoader();
            this.browser.show();
            stopSub.unsubscribe();
            errorSub.unsubscribe();
        });

        let exitSub = this.browser.on(''exit'').subscribe(event => {
            console.log(''exit:'',event)
            this.loaderService.dismissLoader();
            exitSub.unsubscribe();
            this.browser.close();
            this.screenorientation.lock(this.screenorientation.ORIENTATIONS.PORTRAIT);
        });

        let errorSub = this.browser.on(''loaderror'').subscribe(event => {
            console.log(''loaderror'',event)
            this.loaderService.dismissLoader();
            this.browser.close();
            this.screenorientation.lock(this.screenorientation.ORIENTATIONS.PORTRAIT);
            stopSub.unsubscribe();
            errorSub.unsubscribe();
        });

        let startSub = this.browser.on(''loadstart'').subscribe(event => {
            console.log(''loadstart'',event);
        })
    }
}

离子信息:

Cordova CLI:7.0.1
离子框架版本:3.2.0
离子CLI版本:2.2.1
Ionic App Lib版本:2.2.0
Ionic App Scripts版本:1.3.7
ios-deploy版本:未安装
ios-sim版:未安装
操作系统:Windows 10
节点版本:v6.9.4
Xcode版本:未安装

有没有其他人经历过这个,或者有谁知道如何解决这个问题?

解决方法

您正在使用其中一种方式在Android的Web视图中打开文档

方案1:
您当前的网页视图,您可以修改如下:

encodeURI(''https://docs.google.com/gview?embedded=true&url=http://www.your-server.com/files/your_file.pdf'')

编码完整网址,包括https://docs.google.com

这是加载网址的另一种方法:

http://docs.google.com/viewer?url=http://example.com/example.pdf

如果任何此解决方案无效,请尝试下载该文件并在浏览器中打开它.

android – 在InAppBrowser Ionic中加载Spinner

android – 在InAppBrowser Ionic中加载Spinner

我正在尝试在页面加载时在InAppbrowser中实现IonicLoading Spinner.
这就是我在做的事情:

<buttonng-controller="View" ng-click="showHelp('http://www.google.com')">
</button>

控制器:

.controller('View', function($scope, $ionicLoading) {

	$scope.showHelp=function(url) {
	var ref = window.open(url, '_blank', 'location=yes');
    ref.addEventListener('loadstart', function(){ $ionicLoading.show(); }); 
	ref.addEventListener('loadstop', function() { $ionicLoading.hide(); });
	
	}
})

问题是微调器没有在InAppbrowser中加载而是在后台显示(即只有在我关闭InAppbrowser时才可见)

任何帮助,将不胜感激.

解决方法:

由于inAppbrowser始终位于WebView之上,因此无法使用HTML添加Loader.添加cordova-plugin-dialogs插件后,您可以添加本机Loader.以下是一些可以帮助您入门的代码:

要开始加载:

navigator.notification.activityStart("Please Wait", "Its loading.....");

要停止Loader:

navigator.notification.activityStop();

如果您需要更多信息,请查看this参考.

android-phonegap 2.3.0中的InAppBrowser

android-phonegap 2.3.0中的InAppBrowser

在我的android项目中,我正在使用带子浏览器的Phonegap 2.2.0.

我在Phonegap文档中浏览了Phonegap 2.3.0,当我看到inAppbrowser时被吸引了,所以我认为通过使用phonegap 2.3.0可以避免使用子浏览器插件,因此我尝试使用它.

我的问题是,我正在使用子浏览器的onLocationChange方法,在inAppbrowser中需要类似的东西,但是我在phonegap上浏览了完整的inAppbrowser文档.

inAppbrowser(Phonegap 2.3.0 documentation)中只有三个事件

> loadstart-InAppbrowser开始加载URL时触发的事件
> loadstop-InAppbrowser完成加载URL时触发的事件
>退出-关闭InAppbrowser窗口时触发的事件

我只是尝试了1& 2事件以了解它们的工作方式,因为我期望这两个事件与子浏览器的onLocationChange方法不匹配.

有什么解决办法吗?还是我坚持使用子浏览器?

解决方法:

对我来说,loadstop通过添加以下几行来实现,

iabrowser = window.open(url, target, op);
iabrowser.addEventListener('loadstop', locChanged);

确保正确初始化iabrowser.

angular.js codovar InAppBrowser跳转

angular.js codovar InAppBrowser跳转

1.安装插件

cmd切换至项目目录执行

cordova plugin add cordova-plugin-inappbrowser 

open()中的URL参数为浏览器跳转的地址。
target的参数有三种:_self,_blank,_system,_self是如果URL地址在WhiteList中,则用Cordova的Webview将其打开;如果是_blank则直接在APP中将其打开;如果是_system则是用手机默认浏览器将新页面打开。
options参数包含以下信息:
location:设置为yes或no来打开或关闭插件的locationbar
hidden:设置为yes则加载出页面但不显示;设置为no则正常加载页面
zoom(Android独有属性):设置为yes则显示缩放浏览器页面的按钮,设置为no则不显示缩放按钮
hardwareback(Android独有属性):设置为yes则调用Android返回键回到前一界面,设置为no则返回键为退出浏览器页面
closebuttoncaption(IOS独有属性):设置yes则显示Done按钮,设置为no则隐藏Done按钮,点击Done按钮关闭浏览器页面
toolbar(IOS独有属性):设置为yes则显示toolbar;no则隐藏toolbar(toolabar相当于Android的返回键功能)

例子

                   var url = “http://www.baidu.com”;
                    if (!cordova.InAppBrowser) {
                        return;
                    }

                    //location:设置为yes或no来打开或关闭插件的locationbar
                    //android
                    //zoom:设置为yes则显示缩放浏览器页面的按钮,设置为no则不显示缩放按钮
                    //hardwareback:设置为yes则调用Android返回键回到前一界面,设置为no则返回键为退出浏览器页面
                    
                    //ios
                    // toolbar=yes 仅iOS有效,提供关闭、返回、前进三个按钮
                    // toolbarposition=top/bottom 仅iOS有效,决定toolbar的位置
                    // closebuttoncaption=关闭 仅iOS有效
                     
                    var options = ''location=no,toolbarposition=top,toolbar=yes,closebuttoncaption=返回'';//ios的几个属性
                     if(cordova.platformId == ''android''){
                        options = ''location=yes,zoom=no,hardwareback=yes'';//android的几个属性
                     }
                     var ref = cordova.InAppBrowser.open(url, ''_blank'', options);//跳转到百度

                     //重定义exit方法,根据自己的需求,可不加
                     ref.addEventListener(''exit'', function(){
                                          //跳转到首页
                                          console.log(''InAppBrowser被关闭'');
                                          $state.go("shouye", {}, {reload:true});
                                          return;
                       });

Cordova InAppBrowser 设置自定义分析

Cordova InAppBrowser 设置自定义分析

如何解决Cordova InAppBrowser 设置自定义分析?

大家好!需要你的建议。我有一个 HTML+CSS+JS+PHP 的网站组合。

我的目标是将我的网站发布到 IOS 和 Android 市场 并能够为其设置单独的 Google Analytics。

所以,网站已经有了分析脚本。在注册和订单确认页面触发的事件。

我需要知道用户从哪里注册,以及他在哪里下订单。这是通过 IOS 应用程序、常规网站或 Android 应用程序完成的。

我使用了 Apache Cordova inAppbrowser 插件,它让我能够向访问者展示我的网站移动版本,但我仍然需要单独的分析。

也许有什么方法可以在初始化一开始就覆盖它。或其他您知道而我不知道的解决方法。先谢谢了。 ))))

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

今天的关于cordova – InAppBrowser有时会为空/空白cordova-plugin-background-mode的分享已经结束,谢谢您的关注,如果想了解更多关于android – 在InAppBrowser Ionic中加载Spinner、android-phonegap 2.3.0中的InAppBrowser、angular.js codovar InAppBrowser跳转、Cordova InAppBrowser 设置自定义分析的相关知识,请在本站进行查询。

本文标签: