Android WebView 优化之路

2019-12-10 19:07:40王旭

在这儿,考虑到兼容性,拦截的是url,并且在清单文件中自定义了scheme~

Android WebView 优化之路

webview.setWebViewClient(new WebViewClient() {

  @Override
  public boolean shouldOverrideUrlLoading(WebView view, String url) {
   parserURL(url); //解析url,如果存在有跳转原生界面的url规则,则跳转原生。
   return super.shouldOverrideUrlLoading(view, url);
  }

  @Override
  public void onPageFinished(WebView view, String url) {
   super.onPageFinished(view, url);
  }

  @Override
  public void onLoadResource(WebView view, String url) {
   super.onLoadResource(view, url);
  }
 });

清单文件中,声明一下 就可以在自带浏览器通过uri scheme跳到本app页面了,这个activity作为各个页面的分发页面,通过这个界面解析数据决定接下来要跳转哪个页面:

 

<activity
 android:name=".ui.webview.CommWebviewActivity"
 android:configChanges="orientation|keyboardHidden|screenSize"
 android:process=":webview"
 android:screenOrientation="portrait"
 android:windowSoftInputMode="stateHidden">
 <intent-filter>
  <category android:name="android.intent.category.BROWSABLE" />
  <category android:name="android.intent.category.DEFAULT" />

  <action android:name="android.intent.action.VIEW" />

  <data
   android:host="xxxx.com"
   android:scheme="kingp2p" />
 </intent-filter>
</activity>


注:相关教程知识阅读请移步到Android开发频道。