[
https://issues.apache.org/jira/browse/CB-6884?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14041106#comment-14041106
]
Shazron Abdullah edited comment on CB-6884 at 6/23/14 6:44 PM:
---------------------------------------------------------------
Clarification. The described Xcode bug is still true, but not in our case
because it uses obj-c categories (so it always fails no matter what for
@import). For now I will add a pragma message to remind Xcode 6 users to add
the WebKit.framework in Link Binary with Libraries and use #import) explicitly
to get around this problem of supporting lower deployment targets. Once we
require Xcode 6 only this won't be a problem of course.
Workaround: For a CLI build, it could detect that you're using Xcode 6 and add
a compatibility plugin that just adds WebKit.framework.
was (Author: shazron):
Clarification. The described Xcode bug is still true, but not in our case
because it uses obj-c categories. For now I will add a pragma message to remind
Xcode 6 users to add the WebKit.framework explicitly to get around this
problem. Once we require Xcode 6 only this won't be a problem of course.
Workaround: For a CLI build, it could detect that you're using Xcode 6 and add
a compatibility plugin that just adds WebKit.framework.
> Support new Cordova bridge under iOS 8 WKWebView
> ------------------------------------------------
>
> Key: CB-6884
> URL: https://issues.apache.org/jira/browse/CB-6884
> Project: Apache Cordova
> Issue Type: Bug
> Components: CordovaJS, iOS
> Environment: iOS 8 beta 1
> Reporter: Shazron Abdullah
> Assignee: Shazron Abdullah
> Fix For: 3.6.0
>
>
> https://developer.apple.com/library/prerelease/ios/releasenotes/General/RN-iOSSDK-8.0/index.html
> WKUserContentController - add a script message handler with name "cordova":
> https://developer.apple.com/library/prerelease/ios/documentation/WebKit/Reference/WKUserContentController_Ref/index.html#//apple_ref/swift/cl/WKUserContentController
> The WKUserContentController is associated with a WKWebViewConfiguration which
> is initialized with a WKWebView.
> {code}
> WKUserContentController* userContentController = [[WKUserContentController
> alloc] init];
> // scriptMessageHandler is the object that conforms to the
> WKScriptMessageHandler protocol
> // see
> https://developer.apple.com/library/prerelease/ios/documentation/WebKit/Reference/WKScriptMessageHandler_Ref/index.html#//apple_ref/swift/intf/WKScriptMessageHandler
> [userContentController addScriptMessageHandler:scriptMessageHandler
> name:@"cordova"];
> {code}
> In JavaScript, you would call into Objective-C thus:
> {code}
> var command = { callbackId: "blabla23", service:"Camera", action:
> "takePicture", actionArgs: [ 1, 2, 3 ] };
> window.webkit.messageHandlers.cordova.postMessage(command);
> {code}
> In the object that conforms to the WKScriptMessageHandler protocol:
> {code}
> - (void)userContentController:(WKUserContentController
> *)userContentController didReceiveScriptMessage:(WKScriptMessage *)message
> {
> if (![message.name isEqualToString:@"cordova"]) {
> return;
> }
> NSDictionary* command = message.body;
> // TODO: get the callbackId, service, action, actionArgs keys and create
> a CDVInvokedUrlCommand, and dispatch it
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.2#6252)