Vue和ios、android交互通信

1)原生调用Vue方法

Vue代码
created() {
    //Vue的方法给原生调用,则需要把方法挂在Window下面
    window.getDataFromNative = this.getDataFromNative;
},
methods: {
  getDataFromNative(params) {
    //params: 原生调用Vue时传值(params)给Vue
    console.log("得到原生传值结果:" + params);
    var data = {
        'name': "xiaomili"
    };
    return data; //回调给原生,可写可不写
  },

ios调用代码
NSString *toVueSting = @"vickylizy";

NSString *jsStr = [NSString stringWithFormat:@"getDataFromNative('%@')",toVueSting];
 
[self->_wkWebView evaluateJavaScript:jsStr completionHandler:^(id _Nullable d, NSError * _Nullable error) {
 
  NSLog(@"返回---%@",d);//回调值
 
}];
android调用代码
String toVueSting = "vickylizy";
 
webView.loadUrl("javascript:getDataFromNative('"+toVueSting+"')");

or:

webView.evaluateJavascript("javascript:getDataFromNative('" + toVueSting + "')", new ValueCallback<String>() {
    @Override
    public void onReceiveValue(String s) {
        //此方法可以得到回调值
    }
})

2)Vue调用原生方法

vue调用代码
//vue调用Android方法,且传值给Android (Android方法名为 getDataFormVue)
$App.getDataFormVue({
      title: this.money, //vue给android传值
});  
 
//vue调用iOS方法,且传值给iOS (iOS 方法名为 getDataFormVue)
window.webkit.messageHandlers.getDataFormVue.postMessage({
    title: this.money, //vue给iOS传值
});
ios代码
#pragma mark -WKScriptMessageHandler
 
- (void)userContentController:(WKUserContentController*)userContentController didReceiveScriptMessage:(nonnull WKScriptMessage *)message{
 
    if ([message.name isEqualToString:@"getDataFormVue"]) {
 
        NSLog(@"是什么?---%@",message.body);
 
       //做原生操作

    }

}

android代码
//Vue调用Android方法
webView.addJavascriptInterface(this,"$App");//添加js监听 这样html就能调用客户端
 
@JavascriptInterface
public void getDataFormVue(String msg) {
     //做原生操作
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值