ionic angular 与原生进行交互

ionic2 与原生进行交互

  • 从ionic 向原生传递数据(通过拦截url)
 if (this.disposalProofData) {// alert(this.disposalProofData)let dataStr = localStorage.getItem('disposalProofData');var iFrame;iFrame = document.createElement("iframe");iFrame.setAttribute("src", 'depreciationeditaccount:&' + dataStr);document.body.appendChild(iFrame);// 发起请求后这个 iFrame 就没用了,所以把它从 dom 上移除掉iFrame.parentNode.removeChild(iFrame);iFrame = null;return;
} 
  • 原生拦截数据

    mWebview.setWebViewClient(new WebViewClient() {@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) {if (url.split("&")[0].contains("depreciationeditaccount")) {// 新增资产凭证回显mTag = 1;goAccountVoucher(url, 1);}return true;} @Overridepublic void onPageFinished(WebView view, String url) {super.onPageFinished(view, url);String orgId = getIntent().getStringExtra("orgId");// 从原生往 h5缓存里面存东西mWebview.loadUrl("javascript:getUserInfo('" + token + "','" + orgId + "');");dismissProgressDialog();}@Overridepublic void onPageStarted(WebView view, String url, Bitmap favicon) {super.onPageStarted(view, url, favicon);showProgressDialog(getResources().getString(R.string.loading));}
    }
    
  • ionic接收参数并保存

    (在src下面的index 里面,代码入口index)

//接收数据,写入缓存

function getUserInfo(userToken, orgId) {writeLocalData('userToken', userToken);
writeLocalData('orgId', orgId);
}
  • 原生往h5 传递数据

    mWebview.loadUrl("javascript:getNewAssistProofData('" + jsonStr + "');")
    index.html
    
    

附送:

webview初始化:

 mWebview.getSettings().setJavaScriptEnabled(true);// 设置可以支持缩放mWebview.getSettings().setSupportZoom(true);// 设置出现缩放工具mWebview.getSettings().setBuiltInZoomControls(true);// 扩大比例的缩放mWebview.getSettings().setUseWideViewPort(true);// 自适应屏幕mWebview.getSettings().setLayoutAlgorithm(LayoutAlgorithm.NARROW_COLUMNS);mWebview.getSettings().setLoadWithOverviewMode(true);mWebview.addJavascriptInterface(new WebInterface(), "aa");// WebView加载web资源mWebview.loadUrl(accUrl);// js 支持写入缓存mWebview.getSettings().setDomStorageEnabled(true);mWebview.getSettings().setAppCacheMaxSize(1024 * 1024 * 8);String appCachePath = getApplicationContext().getCacheDir().getAbsolutePath();mWebview.getSettings().setAppCachePath(appCachePath);mWebview.getSettings().setAllowFileAccess(true);mWebview.getSettings().setAppCacheEnabled(true);


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部