如果您选中CordovaWebViewClient,则有几个 uris 由 Cordova 开箱即用地处理。
如果您不想使用插件,您可以覆盖它并添加对不同的自定义类型 uri 的支持,这反过来会使用 uri 中指定的参数为您选择的应用程序提供午餐。
public class CustomWebViewClient extends
org.apache.cordova.CordovaWebViewClient {
public CustomWebViewClient(DroidGap ctx) {
super(ctx);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
//Check if provided uri is interesting for us
if (url.startsWith("customUri://")) {
//Get uri params, create intent and start the activity
return true;
}
return super.shouldOverrideUrlLoading(view, url);
}
}
上面的类应该在你的 android 项目的主要活动(扩展 DroidGap)中使用:
@Override
public void init() {
WebView webView = new WebView(this);
CustomWebViewClient webClient = new CustomWebViewClient(this);
CordovaChromeClient chromeClient = new CordovaChromeClient(this);
super.init(webView, webClient, chromeClient);
}
您提到的插件允许根据指定的 uri 午餐意图。因此,例如,如果您提供以 http:// 开头的 uri,android 会将其识别为 Web 资源并尝试启动可用的浏览器。因此,如果您只想启动浏览器,这对您来说应该足够了。