第一种方式:复写webview的setWebViewClient方法,实例带代码如下:
wbWebview.setWebViewClient(new WebViewClient() { @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { if (url != null && TextUtils.equals(url.toString(), "scheme://host/deduct")) { // TODO: 2018/7/21 return true; } return super.shouldOverrideUrlLoading(view, url); } });
其中"scheme://host/deduct"部分是和前端妹子约定的字符串格式,注意做完操作后记得return掉;
第二种方式:在activity中拦截前端传递的uri,代码如下:
Intent intent = getIntent();
Uri uri = intent.getData();
if (uri != null) {
// Log.i("图片地址-----", "onCreate: " + uri);
if (TextUtils.equals(uri.toString(), "scheme://host/deduct")) {
// TODO: 2018/7/21
}
}
其中"scheme://host/deduct"部分是和前端妹子约定的字符串格式
还要在对应的activity清单文件中配置data标签:
<activity
android:name="com.dz.everyone.MainActivity"
android:screenOrientation="portrait"
android:theme="@style/Theme"
android:windowSoftInputMode="adjustPan|stateHidden">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:host="host"
android:pathPrefix="/deduct"
android:scheme="scheme" />
</intent-filter>
</activity>