javascript函数访问ios本机功能
javascript function access ios native features
这种情况:像PhoneGap一样,我想定义和调用一个不存在的JavaScript函数,它需要访问ios功能。例如
javascript代码:
function onClickButton(){
toModule(true, true, "title1", 1);
}
我想通过toModule功能访问iOS功能。但是怎么做呢?你能告诉我吗?
PS:我知道JS->iOS的一个解决方案是使用UIWebViewDelegate的
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
但我不想要那个解决方案,只需处理JS函数到模块(…)
从javascript(phonegap)您不能直接访问ios本地代码,而是应该使用或开发一个phonegap插件来建立这种连接。
您可以在插件开发指南
这很简单步骤1)在项目中包含cordova.js文件步骤2)在您的javascript文件中包含cordova.js,并在您的javascript文件中添加以下代码
cordova.exec(
function successCallback() {
},
function errorHandler(err) {
},
'Login', 'callLogin', [param]);
}
这里Login是本机类的名称,callLogin是Login类中的函数,param是要发送到本机文件的参数数组
Step3)转到config.xml和这个
<feature name="Login">
<param name="ios-package" value="Login"/>
</feature>
步骤4)
- (void)Login:(CDVInvokedUrlCommand*)command
{ // this is the native function, which is being called from javascript file, do your work here
}
步骤5)如果你想把任何数据从本机发送回js文件,你需要写下面的代码。
NSString*jsCallBack=[NString-stringWithFormat:@"callJsFunction(parameters)];[self.webView字符串ByEvaluatingJavaScriptFromString:jsCallBack];
callJsFunction()是要从本机调用的js函数的名称。(只能发送字符串)
步骤6)要从原生到js获取值,您需要在js文件中编写callJsFunction(parameters)。在js文件中写入以下函数
callJsFunction(参数){}
这是从js调用本机函数和从本机类调用js的完整过程。
- '图片'没有用于本机道具的propType'RCTImageView.overlayColor&
- 在iOS和Android上使用React native时,我还能使用本机第三方lirbraries吗
- javascript函数访问ios本机功能
- 如何在从客户端接收数据时从本机方法触发javascript函数?
- 在浏览器中检测本机或第三方PDF插件
- 将事件发送到javascript文档的react本机模块是否正确
- 将对应用内购买的支持构建为react本机代码
- 如何在Windows上用javascript构建本机应用程序
- 在视图中渲染多个按钮以编程方式进行本机反应
- 在本机挂钩之前加载可安装挂钩
- 如何使用UI Automation JavaScript Reference for iOS appium获取本机应用程
- 控制台中的“function floor(){[本机代码]}”是什么
- 如何将chrome.tabCapture流从js传递到c++PNACL本机代码
- 为什么本机浏览器排序功能的工作速度比快速排序慢
- iScroll 4 – 恢复默认/本机缩放功能
- 本机功能不适用于PhoneGap-Cordova
- 检测功能是否为浏览器本机功能
- 本机Javascript Alert风格的覆盖删除了新行功能
- 如何检查Modernizr是否提供本机绑定功能
- 在移动web浏览器中使用javascript访问手机的本机功能,而不使用本机包装器