yyyyaaannn
yyyyaaannn
  • 发布:2020-09-24 11:02
  • 更新:2021-01-20 14:12
  • 阅读:4813

uniapp webview(vue) 交互

分类:uni-app
  • 1.uniapp->webview(vue)
    vue 端
    window.vueJsGetLocation = (function(){console.log("vueJsGetLocation未绑定")})
    uniapp端
    let webview = plus.webview.open('/hybrid/html/index.html');
    webview.evalJS('window.vueJsGetLocation()')

    这时uniapp可以调用webview里的js,那怎么做到实时交互呢?
    1:uniapp把数据存进storage
    plus.storage.setItem('test','testvalse');
    2:每当uniapp存数据时就触发vue的js,js里面读取storage的值
    3:vue怎么做到读取storage?答:vue端引入plus5 html
    plus.storage.getItem("test")

  • 2.webview(vue)->uniapp
    uniaap端
    this.webview.overrideUrlLoading({mode:'reject'}, (e)=>{
    //根据参数的不同,做不同的操作!url中,把双引号用别的字符串替换.就OK了.再替换回来可以转json
    let params = e.url.split('?');
    //升级版本
    switch (params){
    case 'beginXunHu':
    console.log("拦截开始巡护")
    self.beginXunHu();
    break;
    case 'endXunHu':
    console.log("拦截结束巡护")
    self.endXunHu();
    break;
    default:
    break;
    }
    });
    vue端
    window.location.href = "http://www.baidu.com?button=beginXunHu"; //交给uniapp处理

  • 3.持续定位
    使用高德地图sdk,持续定位能达到6小时以上(亲测)

注:本人使用的原因1:uniapp的定位不准;2:客户需要后台持续运行;3:地图组件只支持js
功能基本完成,有更好的方案可以联系QQ:2570443636 ,互相学习

1 关注 分享
4***@qq.com

要回复文章请先登录注册

yyyyaaannn

yyyyaaannn (作者)

回复 Liangxiaoman :
this.webview是h5+的创建webview对象
this.webview = plus.webview.open('/hybrid/html/index.html', 'yanwebview',kuang);
我这里是把编译好的页面放在hybrid
2021-01-20 14:12
yyyyaaannn

yyyyaaannn (作者)

回复 Liangxiaoman :
this.webview是h5+的创建webview对象
2021-01-20 14:08
4***@qq.com

4***@qq.com

谢谢分享 !
2020-12-04 15:53
Liangxiaoman

Liangxiaoman

请教webview(vue)->uniapp传值,使用你这个提示overrideUrlLoading为undefined,this.webview也是undefined
2020-10-07 10:49
s***@qq.com

s***@qq.com

jj
2020-09-24 11:21