У меня есть рабочее приложение cordova и вы создали приложение Watchkit. Осознавая, что я не могу назвать родное приложение на переднем плане или делать что-либо с его внутренней обработкой, я решил использовать Handoff, чтобы просто отправить пользователя через Safari на веб-страницу, которая в основном блокирует код из приложения и обрабатывает URL-адрес параметр строки запроса. Поэтому я написал подпрограмму, которая в основном делает это:Как перенести NSURL из Watchkit -> Родное приложение Кордовы и открыть браузер с Javascript
var URLwithQuery = "http://www.example.com?query="+QueryVar
var urlPath: String = URLwithQuery
var url: NSURL = NSURL(string: urlPath)!
updateUserActivity("com.example.www.hellobrowser",
userInfo: ["name":"WhereAmI"], webpageURL: url)
Теперь я не могу проверить, что я не имею часы и тренажер не поддерживает передачу. Но я сомневаюсь, что это сработает: я вручную ввел массив NSUserActivityTypes и активность hellobrowser в корневой файл info.plist собственного приложения, но это серьезно недокументированная территория, и, хотя все компилируется и запускается, я не буду иметь никаких идей если он фактически инициирует эстафетную передачу обслуживания, пока я не смогу запустить его на фактических часах. Закон Мерфи говорит, что он потерпит неудачу.
Альтернативный способ сделать это было бы как-то передать NSURL обратно в Кордову и использовать
window.open('http://www.example.com?Query='+QueryVar, '_system');
За то, что на работу я должен был использовать this Cordova -Watchkit plugin, который позволяет проходящие объектов JSON между расширением Watchkit а javascript в приложении cordova. Так что на родной стороне приложения я бы реализовать версию этого примера обмена сообщениями для передачи строковой NSURL (за исключением этого примера iPhone -> iPhone, а не Watchkit -> iPhone):
applewatch.init(function (appGroupId) {
alert(appGroupId);
applewatch.addListener("myqueue", function(message) {
alert("Message received: " + message);
});
applewatch.sendMessage("test", "myqueue");
});
Однако, я noob при передаче объектов JSON, и нет примера того, как может выглядеть код Swift в приложении или расширении Watchkit, чтобы передать NSURL обратно этому слушателю.
Я подозреваю, что есть более простой способ сделать это! Если я могу просто получить этот NSURL из приложения Watchkit в виде строки и в javascript моего родного приложения, я оттуда золотой.
Спасибо, Ли. Надежда Apple приходит - ваш плагин - фантастически простое решение для получения приложения cordova и расширения watchkit, разговаривающего друг с другом. – brianfit
Apple одобрила это вчера - (бесстыдная ссылка, если вы хотите увидеть ее работу: https://itunes.apple.com/gb/app/sprint-social/id975135816) –
Я ничего не могу понять о файле моста. .. мое расширение быстро, но я не могу вызвать MMWormhole точно так же – Steeve17