use of android.webkit.PermissionRequest in project summer-android by cn-cerc.
the class FrmMain method InitView.
@SuppressLint("JavascriptInterface")
private void InitView() {
imgBack = (ImageView) this.findViewById(R.id.imgBack);
imgMore = (ImageView) this.findViewById(R.id.imgMore);
lblTitle = (TextView) this.findViewById(R.id.lblTitle);
boxTitle = (LinearLayout) findViewById(R.id.boxTitle);
hightview = (View) findViewById(R.id.hightview);
headview = (View) findViewById(R.id.head_view);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
hightview.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, VisualKeyboardTool.getStatusBarHeight(FrmMain.this)));
hightview.setVisibility(View.VISIBLE);
} else {
hightview.setVisibility(View.GONE);
}
imgBack.setOnClickListener(this);
imgMore.setOnClickListener(this);
lblTitle.setOnClickListener(this);
lblTitle.setSelected(true);
dragpointview = (DragPointView) this.findViewById(R.id.dragpointview);
dragpointview.setEnable(false);
dragpointview.setClickable(false);
dragpointview.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
return false;
}
});
dragpointview.setVisibility(View.INVISIBLE);
mainframe = (FrameLayout) this.findViewById(R.id.mainframe);
progress = (ProgressBar) this.findViewById(R.id.progress);
tipsImage = (ImageView) this.findViewById(R.id.image_tips);
linear_error = (RelativeLayout) this.findViewById(R.id.linear_error);
btn_reload = (Button) this.findViewById(R.id.btn_reload);
browser = (BrowserView) this.findViewById(R.id.webView);
btn_reload.setOnClickListener(this);
browser.getSettings().setTextZoom(settings.getInt(Constans.SCALE_SHAREDKEY, ScreenUtils.getScales(this, ScreenUtils.getInches(this))));
// jsAndroid 供web端js调用标识,修改请通知web开发者
browser.addJavascriptInterface(new JavaScriptProxy(this), "JSobj");
browser.setWebViewClient(new MyWebViewClient());
browser.setWebChromeClient(new WebChromeClient() {
// For Android > 4.1.1
public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType, String capture) {
openFileChooserImpl(uploadMsg);
mUploadMessage = uploadMsg;
}
// For Android > 3.0
public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType) {
if (mUploadMessage != null)
return;
mUploadMessage = uploadMsg;
}
// For Android > 5.0
@Override
public boolean onShowFileChooser(WebView webView, ValueCallback<Uri[]> filePathCallback, FileChooserParams fileChooserParams) {
mUploadMessageForAndroid5 = filePathCallback;
openFileChooserImplForAndroid5(filePathCallback);
return true;
}
@Override
public void onGeolocationPermissionsShowPrompt(String origin, GeolocationPermissions.Callback callback) {
callback.invoke(origin, true, false);
super.onGeolocationPermissionsShowPrompt(origin, callback);
}
@Override
public void onPermissionRequest(PermissionRequest request) {
super.onPermissionRequest(request);
}
@Override
public void onProgressChanged(WebView view, int newProgress) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N)
progress.setProgress(newProgress, true);
else
progress.setProgress(newProgress);
super.onProgressChanged(view, newProgress);
}
@Override
public void onReceivedTitle(WebView view, String title) {
super.onReceivedTitle(view, title);
}
@Override
public void onReceivedTouchIconUrl(WebView view, String url, boolean precomposed) {
super.onReceivedTouchIconUrl(view, url, precomposed);
}
});
browser.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK) && event.getAction() == KeyEvent.ACTION_UP) {
if (is_exit) {
Intent home = new Intent(Intent.ACTION_MAIN);
home.addCategory(Intent.CATEGORY_HOME);
startActivity(home);
} else {
if (// 返回键退回
browser.canGoBack())
// 返回键退回
browser.goBack();
else
finish();
}
return true;
} else
return false;
}
});
browser.setOnLongClickListener(this);
AddWebView();
}
use of android.webkit.PermissionRequest in project summer-android by cn-cerc.
the class FrmMain method newsWebView.
private boolean newsWebView() {
for (int i = 0; i < 6; i++) {
if (newsWebView[i] != null) {
webViewState = false;
} else {
webViewState = true;
classWebView = i;
break;
}
}
if (webViewState) {
// 每次新建重新初始化数据
initData();
titlePage.add(new MainTitleMenu("欢迎页", false, currentUrl, 3, classWebView));
newsWebView[classWebView] = new BrowserView(this);
mainframe.addView(newsWebView[classWebView]);
newsWebView[classWebView].getSettings().setTextZoom(settings.getInt(Constans.SCALE_SHAREDKEY, ScreenUtils.getScales(this, ScreenUtils.getInches(this))));
// jsAndroid 供web端js调用标识,修改请通知web开发者
newsWebView[classWebView].addJavascriptInterface(new JavaScriptProxy(this), "JSobj");
newsWebView[classWebView].setWebViewClient(new MyWebViewClient());
newsWebView[classWebView].setWebChromeClient(new WebChromeClient() {
// For Android > 4.1.1
public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType, String capture) {
openFileChooserImpl(uploadMsg);
mUploadMessage = uploadMsg;
}
// For Android > 3.0
public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType) {
if (mUploadMessage != null)
return;
mUploadMessage = uploadMsg;
}
// For Android > 5.0
@Override
public boolean onShowFileChooser(WebView webView, ValueCallback<Uri[]> filePathCallback, FileChooserParams fileChooserParams) {
mUploadMessageForAndroid5 = filePathCallback;
openFileChooserImplForAndroid5(filePathCallback);
return true;
}
@Override
public void onGeolocationPermissionsShowPrompt(String origin, GeolocationPermissions.Callback callback) {
callback.invoke(origin, true, false);
super.onGeolocationPermissionsShowPrompt(origin, callback);
}
@Override
public void onPermissionRequest(PermissionRequest request) {
super.onPermissionRequest(request);
}
@Override
public void onProgressChanged(WebView view, int newProgress) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N)
progress.setProgress(newProgress, true);
else
progress.setProgress(newProgress);
super.onProgressChanged(view, newProgress);
}
@Override
public void onReceivedTitle(WebView view, String title) {
super.onReceivedTitle(view, title);
}
@Override
public void onReceivedTouchIconUrl(WebView view, String url, boolean precomposed) {
super.onReceivedTouchIconUrl(view, url, precomposed);
}
});
newsWebView[classWebView].setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK) && event.getAction() == KeyEvent.ACTION_UP) {
if (is_exit) {
Intent home = new Intent(Intent.ACTION_MAIN);
home.addCategory(Intent.CATEGORY_HOME);
startActivity(home);
} else {
if (newsWebView[classWebView].canGoBack())
// 返回键退回
newsWebView[classWebView].goBack();
else
finish();
}
return true;
} else
return false;
}
});
} else {
Toast.makeText(this, "已达到新窗口上限", Toast.LENGTH_SHORT).show();
}
return webViewState;
}
use of android.webkit.PermissionRequest in project wcs-android-sdk-samples by flashphoner.
the class WebViewActivity method onCreate.
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment_main);
String url = getIntent().getStringExtra("url");
Log.d(TAG, "Open url: " + url);
webView = (WebView) findViewById(R.id.webview);
setWebViewSettings(webView);
webView.loadUrl(url);
webView.setWebChromeClient(new WebChromeClient() {
@Override
public void onPermissionRequest(final PermissionRequest request) {
Log.d(TAG, "Request permissions: ");
for (String res : request.getResources()) {
Log.d(TAG, res);
}
WebViewActivity.this.runOnUiThread(new Runnable() {
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
@Override
public void run() {
request.grant(request.getResources());
}
});
}
@Override
public void onPermissionRequestCanceled(PermissionRequest request) {
Log.d(TAG, "onPermissionRequestCanceled");
}
});
}
use of android.webkit.PermissionRequest in project SmartMesh_Android by SmartMeshFoundation.
the class AdvancedWebView method init.
@SuppressLint({ "SetJavaScriptEnabled" })
protected void init(final Context context) {
if (context instanceof Activity) {
mActivity = new WeakReference<Activity>((Activity) context);
}
mLanguageIso3 = getLanguageIso3();
setFocusable(true);
setFocusableInTouchMode(true);
setSaveEnabled(true);
final String filesDir = context.getFilesDir().getPath();
final String databaseDir = filesDir.substring(0, filesDir.lastIndexOf("/")) + DATABASES_SUB_FOLDER;
final WebSettings webSettings = getSettings();
webSettings.setAllowFileAccess(false);
setAllowAccessFromFileUrls(webSettings, true);
webSettings.setBuiltInZoomControls(false);
webSettings.setJavaScriptEnabled(true);
webSettings.setDomStorageEnabled(true);
if (Build.VERSION.SDK_INT < 18) {
webSettings.setRenderPriority(WebSettings.RenderPriority.HIGH);
}
webSettings.setDatabaseEnabled(true);
if (Build.VERSION.SDK_INT < 19) {
webSettings.setDatabasePath(databaseDir);
}
setMixedContentAllowed(webSettings, true);
setThirdPartyCookiesEnabled(true);
super.setWebViewClient(new WebViewClient() {
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
if (!hasError()) {
if (mListener != null) {
mListener.onPageStarted(url, favicon);
}
}
if (mCustomWebViewClient != null) {
mCustomWebViewClient.onPageStarted(view, url, favicon);
}
}
@Override
public void onPageFinished(WebView view, String url) {
if (!hasError()) {
if (mListener != null) {
mListener.onPageFinished(url);
}
}
if (mCustomWebViewClient != null) {
mCustomWebViewClient.onPageFinished(view, url);
}
}
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
setLastError();
if (mListener != null) {
mListener.onPageError(errorCode, description, failingUrl);
}
if (mCustomWebViewClient != null) {
mCustomWebViewClient.onReceivedError(view, errorCode, description, failingUrl);
}
}
@Override
public boolean shouldOverrideUrlLoading(final WebView view, final String url) {
if (url.startsWith("http://") || url.startsWith("https://") || url.startsWith("www.")) {
return super.shouldOverrideUrlLoading(view, url);
} else {
return true;
}
}
@Override
public void onLoadResource(WebView view, String url) {
if (mCustomWebViewClient != null) {
mCustomWebViewClient.onLoadResource(view, url);
} else {
super.onLoadResource(view, url);
}
}
@SuppressLint("NewApi")
@SuppressWarnings("all")
public WebResourceResponse shouldInterceptRequest(WebView view, String url) {
if (Build.VERSION.SDK_INT >= 11) {
if (mCustomWebViewClient != null) {
return mCustomWebViewClient.shouldInterceptRequest(view, url);
} else {
return super.shouldInterceptRequest(view, url);
}
} else {
return null;
}
}
@SuppressLint("NewApi")
@SuppressWarnings("all")
public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {
if (Build.VERSION.SDK_INT >= 21) {
if (mCustomWebViewClient != null) {
return mCustomWebViewClient.shouldInterceptRequest(view, request);
} else {
return super.shouldInterceptRequest(view, request);
}
} else {
return null;
}
}
@Override
public void onFormResubmission(WebView view, Message dontResend, Message resend) {
if (mCustomWebViewClient != null) {
mCustomWebViewClient.onFormResubmission(view, dontResend, resend);
} else {
super.onFormResubmission(view, dontResend, resend);
}
}
@Override
public void doUpdateVisitedHistory(WebView view, String url, boolean isReload) {
if (mCustomWebViewClient != null) {
mCustomWebViewClient.doUpdateVisitedHistory(view, url, isReload);
} else {
super.doUpdateVisitedHistory(view, url, isReload);
}
}
@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
if (mCustomWebViewClient != null) {
mCustomWebViewClient.onReceivedSslError(view, handler, error);
} else {
super.onReceivedSslError(view, handler, error);
}
}
@SuppressLint("NewApi")
@SuppressWarnings("all")
public void onReceivedClientCertRequest(WebView view, ClientCertRequest request) {
if (Build.VERSION.SDK_INT >= 21) {
if (mCustomWebViewClient != null) {
mCustomWebViewClient.onReceivedClientCertRequest(view, request);
} else {
super.onReceivedClientCertRequest(view, request);
}
}
}
@Override
public void onReceivedHttpAuthRequest(WebView view, HttpAuthHandler handler, String host, String realm) {
if (mCustomWebViewClient != null) {
mCustomWebViewClient.onReceivedHttpAuthRequest(view, handler, host, realm);
} else {
super.onReceivedHttpAuthRequest(view, handler, host, realm);
}
}
@Override
public boolean shouldOverrideKeyEvent(WebView view, KeyEvent event) {
if (mCustomWebViewClient != null) {
return mCustomWebViewClient.shouldOverrideKeyEvent(view, event);
} else {
return super.shouldOverrideKeyEvent(view, event);
}
}
@Override
public void onUnhandledKeyEvent(WebView view, KeyEvent event) {
if (mCustomWebViewClient != null) {
mCustomWebViewClient.onUnhandledKeyEvent(view, event);
} else {
super.onUnhandledKeyEvent(view, event);
}
}
@SuppressLint("NewApi")
@SuppressWarnings("all")
public void onUnhandledInputEvent(WebView view, InputEvent event) {
if (Build.VERSION.SDK_INT >= 21) {
if (mCustomWebViewClient != null) {
mCustomWebViewClient.onUnhandledInputEvent(view, event);
} else {
super.onUnhandledInputEvent(view, event);
}
}
}
@Override
public void onScaleChanged(WebView view, float oldScale, float newScale) {
if (mCustomWebViewClient != null) {
mCustomWebViewClient.onScaleChanged(view, oldScale, newScale);
} else {
super.onScaleChanged(view, oldScale, newScale);
}
}
@SuppressLint("NewApi")
@SuppressWarnings("all")
public void onReceivedLoginRequest(WebView view, String realm, String account, String args) {
if (Build.VERSION.SDK_INT >= 12) {
if (mCustomWebViewClient != null) {
mCustomWebViewClient.onReceivedLoginRequest(view, realm, account, args);
} else {
super.onReceivedLoginRequest(view, realm, account, args);
}
}
}
});
super.setWebChromeClient(new WebChromeClient() {
// file upload callback (Android 2.2 (API level 8) -- Android 2.3 (API level 10)) (hidden method)
@SuppressWarnings("unused")
public void openFileChooser(ValueCallback<Uri> uploadMsg) {
openFileChooser(uploadMsg, null);
}
// file upload callback (Android 3.0 (API level 11) -- Android 4.0 (API level 15)) (hidden method)
public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType) {
openFileChooser(uploadMsg, acceptType, null);
}
// file upload callback (Android 4.1 (API level 16) -- Android 4.3 (API level 18)) (hidden method)
@SuppressWarnings("unused")
public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType, String capture) {
openFileInput(uploadMsg, null);
}
// file upload callback (Android 5.0 (API level 21) -- current) (public method)
@SuppressWarnings("all")
public boolean onShowFileChooser(WebView webView, ValueCallback<Uri[]> filePathCallback, FileChooserParams fileChooserParams) {
openFileInput(null, filePathCallback);
return true;
}
@Override
public void onProgressChanged(WebView view, int newProgress) {
if (mCustomWebChromeClient != null) {
mCustomWebChromeClient.onProgressChanged(view, newProgress);
} else {
super.onProgressChanged(view, newProgress);
}
}
@Override
public void onReceivedTitle(WebView view, String title) {
if (mCustomWebChromeClient != null) {
mCustomWebChromeClient.onReceivedTitle(view, title);
} else {
super.onReceivedTitle(view, title);
}
}
@Override
public void onReceivedIcon(WebView view, Bitmap icon) {
if (mCustomWebChromeClient != null) {
mCustomWebChromeClient.onReceivedIcon(view, icon);
} else {
super.onReceivedIcon(view, icon);
}
}
@Override
public void onReceivedTouchIconUrl(WebView view, String url, boolean precomposed) {
if (mCustomWebChromeClient != null) {
mCustomWebChromeClient.onReceivedTouchIconUrl(view, url, precomposed);
} else {
super.onReceivedTouchIconUrl(view, url, precomposed);
}
}
@Override
public void onShowCustomView(View view, CustomViewCallback callback) {
if (mCustomWebChromeClient != null) {
mCustomWebChromeClient.onShowCustomView(view, callback);
} else {
super.onShowCustomView(view, callback);
}
}
@SuppressLint("NewApi")
@SuppressWarnings("all")
public void onShowCustomView(View view, int requestedOrientation, CustomViewCallback callback) {
if (Build.VERSION.SDK_INT >= 14) {
if (mCustomWebChromeClient != null) {
mCustomWebChromeClient.onShowCustomView(view, requestedOrientation, callback);
} else {
super.onShowCustomView(view, requestedOrientation, callback);
}
}
}
@Override
public void onHideCustomView() {
if (mCustomWebChromeClient != null) {
mCustomWebChromeClient.onHideCustomView();
} else {
super.onHideCustomView();
}
}
@Override
public boolean onCreateWindow(WebView view, boolean isDialog, boolean isUserGesture, Message resultMsg) {
if (mCustomWebChromeClient != null) {
return mCustomWebChromeClient.onCreateWindow(view, isDialog, isUserGesture, resultMsg);
} else {
return super.onCreateWindow(view, isDialog, isUserGesture, resultMsg);
}
}
@Override
public void onRequestFocus(WebView view) {
if (mCustomWebChromeClient != null) {
mCustomWebChromeClient.onRequestFocus(view);
} else {
super.onRequestFocus(view);
}
}
@Override
public void onCloseWindow(WebView window) {
if (mCustomWebChromeClient != null) {
mCustomWebChromeClient.onCloseWindow(window);
} else {
super.onCloseWindow(window);
}
}
@Override
public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
if (mCustomWebChromeClient != null) {
return mCustomWebChromeClient.onJsAlert(view, url, message, result);
} else {
return super.onJsAlert(view, url, message, result);
}
}
@Override
public boolean onJsConfirm(WebView view, String url, String message, JsResult result) {
if (mCustomWebChromeClient != null) {
return mCustomWebChromeClient.onJsConfirm(view, url, message, result);
} else {
return super.onJsConfirm(view, url, message, result);
}
}
@Override
public boolean onJsPrompt(WebView view, String url, String message, String defaultValue, JsPromptResult result) {
if (mCustomWebChromeClient != null) {
return mCustomWebChromeClient.onJsPrompt(view, url, message, defaultValue, result);
} else {
return super.onJsPrompt(view, url, message, defaultValue, result);
}
}
@Override
public boolean onJsBeforeUnload(WebView view, String url, String message, JsResult result) {
if (mCustomWebChromeClient != null) {
return mCustomWebChromeClient.onJsBeforeUnload(view, url, message, result);
} else {
return super.onJsBeforeUnload(view, url, message, result);
}
}
@Override
public void onGeolocationPermissionsShowPrompt(String origin, Callback callback) {
if (mGeolocationEnabled) {
callback.invoke(origin, true, false);
} else {
if (mCustomWebChromeClient != null) {
mCustomWebChromeClient.onGeolocationPermissionsShowPrompt(origin, callback);
} else {
super.onGeolocationPermissionsShowPrompt(origin, callback);
}
}
}
@Override
public void onGeolocationPermissionsHidePrompt() {
if (mCustomWebChromeClient != null) {
mCustomWebChromeClient.onGeolocationPermissionsHidePrompt();
} else {
super.onGeolocationPermissionsHidePrompt();
}
}
@SuppressLint("NewApi")
@SuppressWarnings("all")
public void onPermissionRequest(PermissionRequest request) {
if (Build.VERSION.SDK_INT >= 21) {
if (mCustomWebChromeClient != null) {
mCustomWebChromeClient.onPermissionRequest(request);
} else {
super.onPermissionRequest(request);
}
}
}
@SuppressLint("NewApi")
@SuppressWarnings("all")
public void onPermissionRequestCanceled(PermissionRequest request) {
if (Build.VERSION.SDK_INT >= 21) {
if (mCustomWebChromeClient != null) {
mCustomWebChromeClient.onPermissionRequestCanceled(request);
} else {
super.onPermissionRequestCanceled(request);
}
}
}
@Override
public boolean onJsTimeout() {
if (mCustomWebChromeClient != null) {
return mCustomWebChromeClient.onJsTimeout();
} else {
return super.onJsTimeout();
}
}
@Override
public void onConsoleMessage(String message, int lineNumber, String sourceID) {
if (mCustomWebChromeClient != null) {
mCustomWebChromeClient.onConsoleMessage(message, lineNumber, sourceID);
} else {
super.onConsoleMessage(message, lineNumber, sourceID);
}
}
@Override
public boolean onConsoleMessage(ConsoleMessage consoleMessage) {
if (mCustomWebChromeClient != null) {
return mCustomWebChromeClient.onConsoleMessage(consoleMessage);
} else {
return super.onConsoleMessage(consoleMessage);
}
}
@Override
public Bitmap getDefaultVideoPoster() {
if (mCustomWebChromeClient != null) {
return mCustomWebChromeClient.getDefaultVideoPoster();
} else {
return super.getDefaultVideoPoster();
}
}
@Override
public View getVideoLoadingProgressView() {
if (mCustomWebChromeClient != null) {
return mCustomWebChromeClient.getVideoLoadingProgressView();
} else {
return super.getVideoLoadingProgressView();
}
}
@Override
public void getVisitedHistory(ValueCallback<String[]> callback) {
if (mCustomWebChromeClient != null) {
mCustomWebChromeClient.getVisitedHistory(callback);
} else {
super.getVisitedHistory(callback);
}
}
@Override
public void onExceededDatabaseQuota(String url, String databaseIdentifier, long quota, long estimatedDatabaseSize, long totalQuota, QuotaUpdater quotaUpdater) {
if (mCustomWebChromeClient != null) {
mCustomWebChromeClient.onExceededDatabaseQuota(url, databaseIdentifier, quota, estimatedDatabaseSize, totalQuota, quotaUpdater);
} else {
super.onExceededDatabaseQuota(url, databaseIdentifier, quota, estimatedDatabaseSize, totalQuota, quotaUpdater);
}
}
@Override
public void onReachedMaxAppCacheSize(long requiredStorage, long quota, QuotaUpdater quotaUpdater) {
if (mCustomWebChromeClient != null) {
mCustomWebChromeClient.onReachedMaxAppCacheSize(requiredStorage, quota, quotaUpdater);
} else {
super.onReachedMaxAppCacheSize(requiredStorage, quota, quotaUpdater);
}
}
});
setDownloadListener(new DownloadListener() {
@Override
public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype, long contentLength) {
if (mListener != null) {
mListener.onDownloadRequested(url, userAgent, contentDisposition, mimetype, contentLength);
}
}
});
}
use of android.webkit.PermissionRequest in project matrix-android-sdk by matrix-org.
the class MXChromeCall method createCallView.
@Override
@SuppressLint("NewApi")
public void createCallView() {
super.createCallView();
mUIThreadHandler.post(new Runnable() {
@Override
public void run() {
mWebView = new WebView(mContext);
mWebView.setBackgroundColor(Color.BLACK);
// warn that the webview must be added in an activity/fragment
dispatchOnCallViewCreated(mWebView);
mUIThreadHandler.post(new Runnable() {
@Override
public void run() {
mCallWebAppInterface = new CallWebAppInterface();
mWebView.addJavascriptInterface(mCallWebAppInterface, "Android");
WebView.setWebContentsDebuggingEnabled(true);
WebSettings settings = mWebView.getSettings();
// Enable Javascript
settings.setJavaScriptEnabled(true);
// Use WideViewport and Zoom out if there is no viewport defined
settings.setUseWideViewPort(true);
settings.setLoadWithOverviewMode(true);
// Enable pinch to zoom without the zoom buttons
settings.setBuiltInZoomControls(true);
// Allow use of Local Storage
settings.setDomStorageEnabled(true);
settings.setAllowFileAccessFromFileURLs(true);
settings.setAllowUniversalAccessFromFileURLs(true);
settings.setDisplayZoomControls(false);
mWebView.setWebViewClient(new WebViewClient());
// AppRTC requires third party cookies to work
android.webkit.CookieManager cookieManager = android.webkit.CookieManager.getInstance();
cookieManager.setAcceptThirdPartyCookies(mWebView, true);
final String url = "file:///android_asset/www/call.html";
mWebView.loadUrl(url);
mWebView.setWebChromeClient(new WebChromeClient() {
@Override
public void onPermissionRequest(final PermissionRequest request) {
mUIThreadHandler.post(new Runnable() {
@Override
public void run() {
request.grant(request.getResources());
}
});
}
});
}
});
}
});
}
Aggregations