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>
上一篇 下一篇

猜你喜欢

热点阅读