我有一个webview,在这个webview中,我有一些表格想要导出到excel中,在任何web浏览器和移动端都运行得很好,但是当我在webview中输入它时,它就停止工作了。当我尝试制作一个全屏元素时,同样的事情也会发生。
它不能在iOS或上运行
谢谢
角度:
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>
发布于 2019-02-20 04:20:12
你的WebView !== Browser,要下载导出的文件,你必须在安卓上实现setDownloadListener,对于iOS,你必须实现委托并处理下载请求,将文件写入存储。
此外,您还必须根据请求修改布局,以便您的WebView可以在请求时全屏显示。
如果它是一个嵌入在应用程序中的网页,我认为你可以使用nativescript-webview-interface插件,这样你就可以简单地从你的网页中触发一个事件,而不是处理侦听器/代理。
https://stackoverflow.com/questions/54773002
复制相似问题