对于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)
- android – 在InAppBrowser Ionic中加载Spinner
- android-phonegap 2.3.0中的InAppBrowser
- angular.js codovar InAppBrowser跳转
- Cordova InAppBrowser 设置自定义分析
cordova – InAppBrowser有时会为空/空白(cordova-plugin-background-mode)
大部分时间它在我的 Android设备上运行良好!但有时我得到的只是一个空的白色屏幕,我必须按后退按钮关闭InAppbrowser,然后重新打开它以显示文档.
在Chrome开发人员工具中远程调试这种奇怪的行为时,我看到loadstart和loadstop事件被正确调用:
当我在空白/白色InAppbrowser中查看HTML时,我看到空< body> -tags:
用于打开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版本:未安装
有没有其他人经历过这个,或者有谁知道如何解决这个问题?
解决方法
方案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
我正在尝试在页面加载时在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.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跳转
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 设置自定义分析?
大家好!需要你的建议。我有一个 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 设置自定义分析的相关知识,请在本站进行查询。
本文标签: