一、web前端

1.调用APP原生方法

①.第一种调用方法

const nativeOS = {  isAndroid() {    return /(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent);  },  isIos() {    return /(Android)/i.test(navigator.userAgent);  },  isMobile() {    return this.isIos() || this.isAndroid();  }};  if (nativeOS.isMobile()) {    var res = window.hello.getLocationString(); //getLocationString为ios或Android端的方法}

②第二种调用方法

function callApp(name,param){    if(window.webkit){        window.webkit.messageHandlers[name].postMessage(param);    }else{        window.AndroidWebView[name](param);    }}

二、APP端

1.Android Webview如下错误

Android Webview: “Uncaught TypeError: Cannot read property ‘getItem’ of null”

解决方式

WebSettings settings = webView.getSettings();settings.setDomStorageEnabled(true);

2.Android Webview启用javascript

解决方式

WebWiew webView = (WebWiew )findViewById(R.id.webView);WebSettings webSettings=webView.getSettings();webSettings.setJavaScriptEnabled(true);

3.Android Webview运行脚本前,要有document对象,至少得load一个空白页

解决方式

webView.loadData("","text/html","UTF-8");

4.Android Webview异步执行问题

下面代码无法正常运行

webView.loadData("", text/html", "UTF-8");webView.loadUrl("javascript:alert('hello')");

几种解决方式:

  • 从界面按钮调用
  • 延时调用
  • 在onPageFinished中调用
mWebView.setWebViewClient(new MyWebViewClient());private class MyWebViewClient extends WebViewClient {    @Override    public void onPageFinished(WebView webView, String url) {        webView.loadUrl("javascript:"+script);    }}

5.Android Webview额外实现console/alert

解决方式

mWebView.setWebChromeClient(new MyWebChromeClient()); //optional, for show console and alertprivate class MyWebChromeClient extends WebChromeClient {@Overridepublic boolean onConsoleMessage(ConsoleMessage cm) {Log.d("test", cm.message() + " -- From line " + cm.lineNumber() + " of " + cm.sourceId());    return true;}@Overridepublic boolean onJsAlert(WebView view, String url, String message, JsResult result) {Toast.makeText(mContext, message, Toast.LENGTH_SHORT).show();return true;}}

参考内容:https://zhidao.baidu.com/question/1894975701280081700.html

更多相关文章

  1. android 关于Only the original thread that created a view hie
  2. Android应用开发中如何进行单元测试
  3. rk3288 android 7.1 串口使用
  4. Android(安卓)Hugo
  5. Android(安卓)RecyclerView:设置指定位置的两种方法
  6. android线程相关1
  7. android View的三个构造方法 简单总结
  8. Android抓包方法
  9. okhttp源码学习分析一

随机推荐

  1. 搭建react-native for android的windows
  2. cocos2d-x android 字体的设置
  3. Android(安卓)之 IntentFilter 详解
  4. android调用微信支付,填坑
  5. Android之Bitmap高效缓存以及android缓存
  6. Android玄铁剑之TextView之我要穿越
  7. 浅谈Android(安卓)O Touch声音播放流程
  8. Android最佳实践之UI
  9. Android(安卓)FlexboxLayout 聪明的UI布
  10. Android(安卓)自定义权限 ( )