OC调用vue方法
2020-07-17 本文已影响0人
agvale
需求:
项目里有个用户注册协议的html文件,现需要批量修改其中的公司名称。
OC代码:
需要在webview完成加载后再处理,否则不起效果。
#pragma mark - WKNavigationDelegate
- (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation {
NSString * jsStr =[NSString stringWithFormat:@"changeBrandCompany('%@')",SharedConfig.brand_company];
[self.webView evaluateJavaScript:jsStr completionHandler:^(id _Nullable result, NSError * _Nullable error) {
MCLog(@"--------error %@",error);
MCLog(@"--------result %@",result);
}];
}
html代码:
为了方便修改把公司名放到vue变量里
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
<script>
var app = new Vue({
el: '#agreement',
data:{
brandCompany:'xxxx'
},
methods:{
changeBrandCompany:function(company){
this.brandCompany = company;
}
},
mounted() {
//这里需要注意的是 oc调用js需要事先把这个方法暴露在外部 将方法名字挂载在mounted处
window.changeBrandCompany = this.changeBrandCompany;
}
})
</script>