Windows Cordova应用程序:应用程序可以’;t在本地上下文中加载远程web内容
我有一个UWP cordova应用程序,它使用PDFJS来呈现pdf文件。它将嵌入式字体加载为Windows Cordova应用程序:应用程序可以’;t在本地上下文中加载远程web内容,cordova,uwp,visual-studio-cordova,viewer,pdfjs,Cordova,Uwp,Visual Studio Cordova,Viewer,Pdfjs,我有一个UWP cordova应用程序,它使用PDFJS来呈现pdf文件。它将嵌入式字体加载为数据uri,但我收到错误应用程序无法在本地上下文中加载远程web内容。以及警告警告:从未加载加载测试字体。。我想做的是这样,但在UWP应用程序中: 这是加载字体的代码(在第7390行的pdf.js中找到): 一个这样的场景: @font-face{font-family:“g_d0_f9”; src:url(数据:font/opentype;base64,T1RUTWAJAAAAWAQ0ZGIHP+HQ
数据uri
,但我收到错误应用程序无法在本地上下文中加载远程web内容。
以及警告警告:从未加载加载测试字体。
。我想做的是这样,但在UWP应用程序中:
这是加载字体的代码(在第7390行的pdf.js中找到):
一个这样的场景:
@font-face{font-family:“g_d0_f9”;
src:url(数据:font/opentype;base64,T1RUTWAJAAAAWAQ0ZGIHP+HQ4AAACCAAAEQE9TLZJEE6ZGAAAAE3AAGBBJBWWWWWWWK0AGVHZKSNUBMAAAFWAAAAAAAAAAAMHOZWEDXGIHAAAAAAAAAAACAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAABABB9HBWWWWW7AAGAAANGAANB3NOAAAAAAAAAAAACAAAACVGAAAGAAAQEAGAAAQAEHS0VK7AAVK7AAVK7AAK7AAKWK7AAK7AAK7AAK7AAKWK7AAK7AAKWK7AAK7AAK7AAK7AAK7AAK7AAK7AAKWK7AAK7AAK7AAK7AAK7AAK7AAK7AAK7AAKKKWmfqacaqfDaknvchlyawdododcaxotkwigfzighfuihvgkihdvcmsgykgqmL0c3Ryzwftiely4GiefSbBcBcDdHMGCMvzzxJ2zWquicBb25MawrlbNrPyWuWuWuL0ZTvHgWuzWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuZgWuWuWuWuWuWuWuWuWuWuZgWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuW3dmgd93qwyplyxaajltl+wOHCGUHipmYi5gbs7GOkbEfDovI+QvDEr7OU8T3fckT6L4W+AHI+74GjNPEx+biuri8s6flcjqtk7s5gvcrnt7ab4twcjhp/swh4db/cAjbPA2xvOt1g1+wfouts7h1lzxmbxxhfcf1skqgofct30m3rcisvcdgdgdgx/dox2DLE5K991kV+xuM0D/3arv3at3ctt9xvvczvcgzgzgzgzgzg8tbmqffg9vgjjjjjjjjjjjjjjjjjjjv9v9v9vjjjjjj+zzzzz
有什么办法可以让它加载文件吗
文件夹结构:
function onDeviceReady() {
// Handle the Cordova pause and resume events
document.addEventListener( 'pause', onPause.bind( this ), false );
document.addEventListener( 'resume', onResume.bind( this ), false );
// TODO: Cordova has been loaded. Perform any initialization that requires Cordova here.
if (cordova.platformId == "windows")
{
var webview = document.createElement("x-ms-webview");
webview.src = "ms-appx-web:///www/pdftest.html";
webview.width = 500;
webview.height = 500;
document.getElementById("main").appendChild(webview);
}
};
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<canvas id="the-canvas"></canvas>
<script src="lib/pdf.js"></script>
<script src="scripts/main.js"></script>
</body>
</html>
var url = 'http://cdn.mozilla.net/pdfjs/helloworld.pdf';
- index.html
- main.js
- pdf js/
- cmaps/
- 图像/
- 地点/
- compatibility.js
- l10n.js
- pdf.js
- pdf.worker.js
- 查看器.css
- viewer.js
从错误消息中,您当前正在本地上下文中加载一些远程web内容,由于安全原因,这是不允许的。有关详细信息,请参阅的表 因此,要解决此问题,您可以将加载PDF部件放入:
ondevicerady
在index.js:
function onDeviceReady() {
// Handle the Cordova pause and resume events
document.addEventListener( 'pause', onPause.bind( this ), false );
document.addEventListener( 'resume', onResume.bind( this ), false );
// TODO: Cordova has been loaded. Perform any initialization that requires Cordova here.
if (cordova.platformId == "windows")
{
var webview = document.createElement("x-ms-webview");
webview.src = "ms-appx-web:///www/pdftest.html";
webview.width = 500;
webview.height = 500;
document.getElementById("main").appendChild(webview);
}
};
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<canvas id="the-canvas"></canvas>
<script src="lib/pdf.js"></script>
<script src="scripts/main.js"></script>
</body>
</html>
var url = 'http://cdn.mozilla.net/pdfjs/helloworld.pdf';
www\pdftest.html:
function onDeviceReady() {
// Handle the Cordova pause and resume events
document.addEventListener( 'pause', onPause.bind( this ), false );
document.addEventListener( 'resume', onResume.bind( this ), false );
// TODO: Cordova has been loaded. Perform any initialization that requires Cordova here.
if (cordova.platformId == "windows")
{
var webview = document.createElement("x-ms-webview");
webview.src = "ms-appx-web:///www/pdftest.html";
webview.width = 500;
webview.height = 500;
document.getElementById("main").appendChild(webview);
}
};
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<canvas id="the-canvas"></canvas>
<script src="lib/pdf.js"></script>
<script src="scripts/main.js"></script>
</body>
</html>
var url = 'http://cdn.mozilla.net/pdfjs/helloworld.pdf';
//禁用工人以避免另一个跨来源问题(工人需要
//要加载的脚本的URL,并动态加载跨原点
//脚本不工作)。
//PDFJS.disableWorker=true
//应规定工人的财产。
PDFJS.workerSrc=''
//PDF的异步下载
var loadingTask=PDFJS.getDocument(url);
loadingTask.promise.then(函数(pdf){
console.log('PDF-loaded')
下面是完整的测试演示:嘿,埃尔维斯,非常感谢你为解决这个问题所付出的努力。我相信我面临的错误来自于抛出这些错误的
viewer.js
。你能将viewer.js
加载到项目中,看看它是否会给你带来任何问题吗?更新了问题在上。请看一看。您可以发布一个到您使用的viewer.js
文件的在线链接吗?