Cordova iOSプロジェクトで中央のブルートゥースを初期化しようとしています。プラグインはthis githubです。私のコードは以下のようになります。デバッグモードでリフレッシュしない限り、ソースを正しく読み込むことができません。Cordova iOSプロジェクト
-www
index.js
/ServiceS/BLEService.js
function initializeSuccess(result) {
if (result.status === "enabled") {
log("Bluetooth is enabled.");
log(result);
}
else {
document.getElementById("start-scan").disabled = true;
log("Bluetooth is not enabled:", "status");
log(result, "status");
}
}
function handleError(error) {
var msg;
if (error.error && error.message) {
var errorItems = [];
if (error.service) {
errorItems.push("service: " + (uuids[error.service] || error.service));
}
if (error.characteristic) {
errorItems.push("characteristic: " + (uuids[error.characteristic] || error.characteristic));
}
msg = "Error on " + error.error + ": " + error.message + (errorItems.length && (" (" + errorItems.join(", ") + ")"));
}
else {
msg = error;
}
log(msg, "error");
if (error.error === "read" && error.service && error.characteristic) {
reportValue(error.service, error.characteristic, "Error: " + error.message);
}
}
function log(msg, level) {
level = level || "log";
if (typeof msg === "object") {
msg = JSON.stringify(msg, null, " ");
}
console.log(msg);
if (level === "status" || level === "error") {
var msgDiv = document.createElement("div");
msgDiv.textContent = msg;
if (level === "error") {
msgDiv.style.color = "red";
}
msgDiv.style.padding = "5px 0";
msgDiv.style.borderBottom = "rgb(192,192,192) solid 1px";
document.getElementById("output").appendChild(msgDiv);
}
}
とのindex.html
<html>
<head>
<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *; img-src 'self' data: content:;">
<meta name="format-detection" content="telephone=no">
<meta name="msapplication-tap-highlight" content="no">
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width">
<link rel="stylesheet" type="text/css" href="css/index.css">
<title>Hello World</title>
</head>
<body>
<div class="app">
<h1>Apache Cordova</h1>
<div id="deviceready" class="blink">
<p class="event listening">Connecting to Device</p>
<p class="event received">Device is Ready</p>
</div>
<p id="output"></p>
</div>
<script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript" src="js/Services/BLEService.js"></script>
<script type="text/javascript" src="js/index.js"></script>
</body>
</html>
基本的にここのすべてがjuですstはスタートアップコードをCordova hellowordから取得し、そのブルートゥースプラグインのgithubから取得します。私はXCodeでプロジェクトを構築しようとしましたが、これまでのところすべて正常に動作します。デバイスのビルドと実行にエラーはありません。
私の電話で直接プロジェクトを実行すると、初期化の成功または失敗のいずれの応答もありません。私はxcodeでの出力のメッセージが "受け取ったイベント:deviceready"を示しています。だから私はそれがちょうど "約束" JavaScriptの仕事の一部ではないと思う。私はサファリからデバッガをリンクし、その上に開発者ツールを使用します。私が手動で更新をクリックすると、次にアプリケーションが電話で再読み込みされるまでに、出力に「Bluetoothが有効になっています」と{「ステータス」:「有効になっています」}と表示されます。
しかし、私は約束のすべての機能が初めて読み込まれない理由を知りません。誰かがそれについて何か手掛かりを持っていますか?