2015-06-16 30 views
5

में एक समारोह बुला मुझे पता है कि देशी आईओएस तेज अनुप्रयोग के लिए जे एस से संदेश भेजने के लिए:जे एस स्विफ्ट

func userContentController(userContentController: WKUserContentController!, didReceiveScriptMessage message: WKScriptMessage!) { 

     println("JavaScript is sending a message \(message.body)") 

} 

और जे एस:

webkit.messageHandlers.callbackHandler.postMessage("Hello from JavaScript"); 

मेरा प्रश्न: क्या यह संभव सीधे एक कॉल करने के लिए है मेरे ऐप कोड में संदेश प्राप्त करने के बजाय मूल ऐप में फ़ंक्शन करें।

कहना मैं की तरह कुछ का उपयोग करने के जे एस में हैं:

webkit.messageHandlers.someFunctionName() 

कारण मैं पूछ रहा हूँ कि एंड्रॉयड thats में यह कैसे काम करता

+0

आपके पास एक यूआरएल है जिसका आप सही उपयोग करते हैं? आईओएस ऐप से जेएस कॉल करने के लिए? –

उत्तर

0

आप की तरह क्या तुम करोगी, url parameters उपयोग करने के लिए कोशिश कर सकते है Get url parameter jquery Or How to Get Query String Values In js

: का उपयोग कर तेजी से

यहाँ कैसे जावास्क्रिप्ट में url पैरामीटर प्राप्त करने का एक उदाहरण है पीएचपी से कनेक्ट तो फिर तुम जांच क्या url parameters हैं में जाँच जब आप जावास्क्रिप्ट चला सकते हैं, और फिर से चलाने के एक समारोह है कि

इस तरह के आधार पर यूआरएल है example.com हम क्या कार्य करने के लिए कहने के लिए पैरामीटर command, का उपयोग चलाने

example.com?command=foo 

तो हम जावास्क्रिप्ट में इस तरह someting होना चाहिए

if(command='foo'){ 
    //run function 
    runFoo(); 
} 

n क्या आप भी url पैरामीटर इस्तेमाल कर सकते हैं समारोह

में पैरामीटर सेट करने के लिए आप PHP

चुनते हैं, तो आप php का उपयोग करना चाहते हैं, यह एक ही बात आप के साथ $_GET['command'];

3

WKWebView क्या कर सकते हैं केवल कच्चे संदेश पास इंटरफ़ेस का समर्थन करता है। आपको जेएस और मूल के बीच जटिल बातचीत के लिए इसे लपेटना होगा।

मैंने XWebView नामक एक प्रोजेक्ट बनाया है जो WKWebView के पास जाने वाले कच्चे संदेश के आधार पर भाषा बाध्यकारी स्टाइल API प्रदान करता है। यह स्विफ्ट में लिखा है।

उदाहरण के लिए, आप स्विफ्ट में एक प्लगइन लिख सकते हैं:

let webView = WKWebView(frame: frame, configuration: WKWebViewConfiguration()) 
webView.loadPlugin(Plugin(), namespace: "foo") 

कॉल जावास्क्रिप्ट से समारोह:

class Plugin : NSObject { 
    func someFunctionName() { 
     doSomeThing() 
    } 
} 

लोड हो रहा है एचटीएमएल से पहले जावास्क्रिप्ट को प्लगइन का एक उदाहरण का पर्दाफाश

window.foo.someFunctionName() 

यह वास्तव में आसान और सीधा है। अधिक जानकारी के लिए, कृपया प्रोजेक्ट के पेज की जांच करें।

संबंधित मुद्दे