Windows Cordova应用程序:应用程序可以’;t在本地上下文中加载远程web内容

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

我有一个UWP cordova应用程序,它使用PDFJS来呈现pdf文件。它将嵌入式字体加载为
数据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
Index.html(此处包含的标记从viewer.html中提取)


从错误消息中,您当前正在本地上下文中加载一些远程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
文件的在线链接吗?