解決方案:找到InAppBrowserDownloads.java,而且做以下修改java
import android.webkit.CookieManager;
protected void processDownload() {
final String url = InAppBrowserDownloads.this.url;
final String cookie = CookieManager.getInstance().getCookie(url);
DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url));
request.addRequestHeader("Cookie", cookie);
request.addRequestHeader("User-Agent", InAppBrowserDownloads.this.userAgent);
request.addRequestHeader("Referer", url);
try {
……
} catch (Exception exception) {
……
}
}
複製代碼
解決方案:找到InAppBrowser.java,而且將以下注釋去掉 說明:因爲開啓此特性會致使內置瀏覽器頁面信息被劫持,故通常都會註釋,僅供調試時開啓android
//if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
// inAppWebView.setWebContentsDebuggingEnabled(true);
//}
複製代碼
解決方案:ios
採用inappbower打開連接以解決,也就是window.open(url, method)web
解決方案:採用原生連接打開方式api
適用場景:app之內置瀏覽器的方式集成三方h5應用而且經過cookie傳遞用戶信息時,開啓屬性後當第二次是用另外的帳號打開三方h5頁面時候,就不會遇到三方應用中帳戶信息仍是上一我的的狀況瀏覽器
適用場景:當集成方不想暴露連接信息或者連接帶有敏感信息時,應以無導航條方式打開cookie
適用場景:當集成方是pc頁面時,此選項最好開啓session
適用場景:該屬性至關於enableViewportScale的拓展app
解決方案:提供一個sdk api以調用,簡單的說就是利用回調ui
解決方案:不要打架,找雙方老闆和客戶溝通改動的利益成本和所須要的資源以及面臨的困境,通常來講,集成方的代碼都是針對pc端的,對移動端適配確定不友好,當對方集成到己方app中時,就應該考慮到移動適配的問題,以及可能須要配合改動的需求,若是集成方一味的甩鍋,不要着急,把問題一五一十的告訴上級,合情合理的話,讓經驗豐富的產品和領導處理,不要接到鍋立馬就甩。
解決方案:找到CDVInAppBrowser.m,在didFailLoadWithError中將self.backButton.enabled置爲YES
- (void)webView:(UIWebView*)theWebView didFailLoadWithError:(NSError*)error
{
BOOL isLantuCall = [self isLantuCall:error];
// log fail message, stop spinner, update back/forward
NSLog(@"webView:didFailLoadWithError - %ld: %@", (long)error.code, [error localizedDescription]);
//self.backButton.enabled = theWebView.canGoBack;
//將這裏的返回強制容許
self.backButton.enabled = YES;
self.forwardButton.enabled = theWebView.canGoForward;
[self.spinner stopAnimating];
//self.addressLabel.text = NSLocalizedString(@"Load Error", nil);
//不想顯示Load Error的話能夠顯示成Load Completed之類讓用戶體驗更好,
//由於不是真正的加載失敗,只是對target="_blank"跳轉的處理存在問題
self.addressLabel.text = NSLocalizedString(@"Load Completed", nil);
[self.navigationDelegate webView:theWebView didFailLoadWithError:error];
}
複製代碼