错误: 0x800a138f - JavaScript运行时错误:无法获取未定义或空引用的属性'setApiKey'
您好,我正在拼命尝试将其用于我的通用Windows应用程序。 Googles URL缩短器的示例包含有关如何使用API的说明。
https://developers.google.com/api-client-library/javascript/samples/samples
当我在浏览器中运行时,所有这一切都有效,但是一旦我在通用Windows应用程序中运行它,它就无法运行。我认为它与UWP的安全性有关,内联skripts是不允许的,你不能正常从网上加载脚本。您必须使用webview从Web加载脚本,所以我使用此webview执行此操作:
<x-ms-webview id="UrlShortenerWebview"src="ms-appx-web:///Pages/URLShortener/URLShortener.html" style="width: 200px; height: 200px; border: 1px solid black;"></x-ms-webview>
这是我的URL Shortener html文件:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<script src="https://apis.google.com/js/api.js" type="text/javascript"></script>
<script>
function appendResults(text) {
var results = document.getElementById('results');
results.appendChild(document.createElement('P'));
results.appendChild(document.createTextNode(text));
}
function makeRequest() {
var request = gapi.client.urlshortener.url.get({
'shortUrl': 'http://goo,gl/fbsS'
});
request.then(function (response) {
appendResults(response.result.longUrl);
}, function (reason) {
console.log('Error: ' + reason.result.error.message);
});
}
function init() {
gapi.client.setApiKey('AIzaSyCzBnER6KmLiO2ZBIycZIPCEQEXxIrHnR0');
gapi.client.load('urlshortener', 'v1').then(makeRequest)
}
gapi.load("client", init);
</script>
</head>
<body>
<div id="results"></div>
</body>
</html>
错误: 0x800a138f - JavaScript运行时错误:无法获取未定义或空引用的属性'setApiKey'
我不知道为什么会发生这种情况或我还能做些什么来解决这个问题。甚至可以在Windows应用程序中使用谷歌API?
答案 0 :(得分:0)
请在您的MSDN案例中查看Rob的评论:https://social.msdn.microsoft.com/Forums/windowsapps/en-US/bd101515-212b-4366-b60d-2807b2783f62
Rob提到了两种选择:如果Google允许,可以调用本地js文件,或者使用x-ms-webview
方法完全控制并将内容流式传输到navigateToLocalStreamUri
。