我有一个Web视图,在该Web视图中,我有要导出为excel的表格,在任何Web浏览器和移动设备上都可以正常工作,但是当我在Web视图中输入该表格后,它便停止工作。当我尝试制作全屏元素时,也会发生同样的事情。
它不适用于iOS或Android
谢谢
角度:
var viewmodel = new observable.Observable({});
// Our new Observable view model for data binding
@Component({
selector: "Home",
moduleId: module.id,
templateUrl: "./home.component.html",
styleUrls:['./home.component.css']
})
export class HomeComponent implements OnInit {
// variable para definir la url a la que accedera el webview
public webViewSrc: string = "https://www.youtube.com/watch?v=uIDXcmXZnGY";
public viewmodel= new observable.Observable({});
//variable para comprobar si se ha cargado o no el webview o la page
public isLoading:boolean= true;
public token;
constructor(private routerExtensions: RouterExtensions,private
page:Page,private tokenService:TokenService) {
// Use the component constructor to inject providers.
}
ngOnInit(){
//Ocultamos la cabecera que tendria la app
this.page.actionBarHidden = true;
}
//evento que salta cuando comienza a cargarse la pag web
// es necesario para poder acceder a la localstorage, desabilitar las toolszoom...
onWebViewStartLoaded(args){
const webView = args.object;
if (webView.android) {
webView.android.getSettings().setDomStorageEnabled(true);
webView.android.getSettings().setDatabaseEnabled(true);
webView.android.getSettings().setLoadWithOverviewMode(true);
webView.android.getSettings().setBuiltInZoomControls(false);
webView.android.getSettings().setJavaScriptEnabled(true);
webView.android.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
webView.android.getSettings().setAllowFileAccess(true);
webView.android.getSettings().setPluginsEnabled(true);
webView.android.getSettings().setAllowContentAccess(true);
webView.android.getSettings().setAllowFileAccess(true);
webView.android.getSettings().setAllowFileAccessFromFileURLs(true);
webView.android.getSettings().setAllowUniversalAccessFromFileURLs(true);
webView.android.setWebChromeClient(new android.webkit.WebChromeClient());
}
}
// Una vez cargado el webview
onWebViewLoaded(args){
}
//Una vez cargada la Pagina no el webview!
pageLoaded(args: EventData) {
this.page = <Page>args.object;`enter code here`
this.page.bindingContext = new HomeViewModel();
this.page.bindingContext = viewmodel;
this.token=this.tokenService.recuperarToken();
console.log("esto tiene mi token recuperado",this.token);
}
}
HTML
<GridLayout >
<Page (loaded)="pageLoaded($event)" actionBarHidden="true">
<WebView #myPage [src]="webViewSrc"
(loadStarted)="onWebViewStartLoaded($event)" .
(loadFinished)="onWebViewLoaded($event)"></WebView>
</Page>
</GridLayout>
答案 0 :(得分:0)
您的 WebView!==浏览器,要下载导出的文件,您将必须在Android上实现setDownloadListener,对于iOS,您将必须实现委托并处理下载请求,将文件写入存储。
此外,您还必须根据要求修改布局,以便WebView可以在全屏显示。
如果它是应用程序中的嵌入式网页,我想您可以使用nativescript-webview-interface插件,这样您就可以简单地从网页中触发事件,而不处理侦听器/委托。