WebViewでJavascriptを有効にする。 JavaSciptを使用しないと、Webページのイメージのスケーリングが正しく機能しないためです。 WebViewでURLをロードする方法は次のとおりです。Android - JavaScriptの機能が呼び出されるとWebViewがクラッシュする
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final String url = "http://nuz.uz/ekonomika-i-finansy/18651-v-2017-godu-v-uzbekistane-prekratitsya-realizaciya-lampochek-ilicha.html";
final WebView webview = (WebView) findViewById(R.id.webview);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
WebView.setWebContentsDebuggingEnabled(true);
}
webview.getSettings().setJavaScriptEnabled(true);
webview.setWebChromeClient(new WebChromeClient() {
public void onConsoleMessage(String message, int lineNumber, String sourceID) {
Log.d("Tag", message + " -- From line "
+ lineNumber + " of "
+ sourceID);
}
});
webview.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String loadingUrl) {
if (loadingUrl.equals(url)) return false;//open news link in webview
else {
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(loadingUrl));
startActivity(browserIntent);
return true;
}
}
@Override
public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error){
Log.d("Tag", "Error occured: "+error.toString());
}
});
webview.loadUrl(url);
}
}
私はアプリケーションを実行しているときにWebページを開いています。ページのすべてのコンテンツを読み込んだ後、アプリがクラッシュしています。私はそれが次のエラー表示されたコンソールにエラーを表示してみました:私は、URLのコンテンツをチェックした
12-14 02:42:06.936 25760-25760/? D/Tag: Uncaught TypeError: Cannot call method 'init' of undefined -- From line 951 of http://nuz.uz/ekonomika-i-finansy/18651-v-2017-godu-v-uzbekistane-prekratitsya-realizaciya-lampochek-ilicha.html
をし、アプリのクラッシュを引き起こしている以下のが見つかりました:私はこの問題を解決するにはどうすればよい
<script type="text/javascript">
jQuery(document).ready(function() {
App.init();
});
</script>
line 951: App.init();
JavaScriptをオフにすることなく? WebViewがアプリケーションをクラッシュさせないようにするにはどうすればいいですか?
残念ながら、これは私のウェブサイトではありません。私はそれ以上のコントロールはありません=)他の回避策はありますか? –
a)JSなしでWebサイトをロードし、b)エラーを修正してください(ロードされたHTMLを混乱させるかどうかは不明です)。私の本では実行可能でも実用的でもありません。試してみてください:http://stackoverflow.com/questions/32530228/android-api-23-webview-how-to-ignore-javascript-errors –