タグ付けされた質問 「android-webview」

Android APIの一部。Webページを表示するビュー。このクラスは、独自のWebブラウザーをロールしたり、アクティビティ内にいくつかのオンラインコンテンツを表示したりするための基礎になります。

12
Android-RotateでのWebViewのリロードの防止
画面を回転すると、WebViewはページ全体を再読み込みします。一部のコンテンツに動的/ランダムな素材が含まれているため、これを使用することはできません。現在、画面を回転すると、loadUrl()メソッドから元のURLが再読み込みされます。 私のコードの何が問題になっているのでしょうか? MainActivity.java package com.mark.myapp; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.KeyEvent; import android.view.Menu; import android.webkit.WebView; import android.webkit.WebViewClient; public class MainActivity extends Activity { WebView web; String webURL = "http://www.google.co.uk/"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); if (savedInstanceState != null) ((WebView)findViewById(R.id.web)).restoreState(savedInstanceState); web = (WebView) findViewById(R.id.web); web.getSettings().setJavaScriptEnabled(true); web.loadUrl(webURL); …


6
AndroidWebViewで既存の.htmlファイルをロードする
でサンプル、Googleコードのデモ、その他のリソースをWebView試しましたが、自分のコードで試してみるとうまくいきません。 myfile.htmlアセットフォルダに置いたものをロードしたいのですが、以下を使用します。 private WebView myWebView; myWebView.loadUrl("file:///android_assets/myfile.html"); エミュレータでエラーが表示される のWebページを次のfile:///android_assets/myfile.htmlようにロードできませんでした:要求されたファイルが見つかりませんでした。 /android_assets/myfile.html そのファイルをres/raw/フォルダに入れて使用すると: myWebView.loadUrl("file:///android_res/raw/myfile.html"); その場合、エミュレータandroid 2.2 APIレベル8のみがファイルをロードできる可能性があり、他の古いバージョンでも同じエラーが表示されます。私は何かが足りませんか? すべてのAPIバージョンで機能するアプリケーションパッケージに既存の.htmlファイルをロードする方法はありますか?

7
WebViewからWebページのコンテンツを取得するにはどうすればよいですか?
AndroidにWebViewは、ページを表示しているがあります。 ページを再度リクエストせずにページソースを取得するにはどうすればよいですか? そうですWebViewのいくつかの種類が必要getPageSource()文字列を返すメソッドを、悲しいかなそれはしていません。 JavaScriptを有効にした場合、コンテンツを取得するためにこの呼び出しに入れる適切なJavaScriptは何ですか? webview.loadUrl("javascript:(function() { " + "document.getElementsByTagName('body')[0].style.color = 'red'; " + "})()");

4
同じスレッドエラーのWebViewメソッド
私はAndroidプログラム(WebビューのJava + html)を持っています。javascriptからJavaコードを呼び出すことができます。しかし、その逆は(Eclipseで更新した後)動作を停止しました。 だからこれが私がやろうとしていることです Webビューを作成する(機能) JavaScriptでAndroidFunction.test();を呼び出す (働いた) java test()関数呼び出しwebView.loadUrl( "javascript:helloBack()"); (!もう動作していません) MainActivityのWebViewで動作させようとしましたが、動作しませんでした。 MainActivity.java public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); final WebView webView = (WebView)findViewById(R.id.webView); webView.getSettings().setJavaScriptEnabled(true); webView.setWebChromeClient(new WebChromeClient()); WebSettings webSettings = webView.getSettings(); webSettings.setJavaScriptEnabled(true); javascr = new Javascript(this, webView); webView.addJavascriptInterface(javascr, "AndroidFunction"); webView.loadUrl("file:///android_asset/www/index.html"); .... } Javascript.java public class Javascript { Context cont; …

3
JSオブジェクトのキー(文字列)の長さに制限はありますか?
そのため、キーがid(int)で、値が文字列であるオブジェクトがある場合がありました。しかし、ほとんどの場合、文字列に基づいてidを検索することに気付いたので、それを逆にして文字列をキーにし、値はidです。その方法では、各項目を調べて値を比較する代わりに、次のことを実行できますvar id = storage[text];。以下は私たちがしたことの例です。 古い実装の例を次に示します。 var storage = { 0 : null, 1 : "Hello", 2 : "world!", 3 : "How are you?" } 新しい実装の例を次に示します。 var storage = { "null" : 0, "Hello" : 1, "world!" : 2, "How are you?" : 3 } 文字列がキーになり、同じ文字列に対して同じIDを取得しても問題ないことを理解しました。しかし、今では文字列がかなり巨大になる可能性があるので(チャンスは少ないですが、おそらく文字列あたり最大1KB)、JSまたはAndroid Webビューがオブジェクトキーに課す長さの制限はありますか? また、この実装には欠点がありますか?今のところ問題はありませんが、わかりません。

1
クリップボードAPI呼び出しは、onPermissionRequest()を呼び出さずにNotAllowedErrorをスローします
ボタンが付いたシンプルなページがあります。ボタンを押すと、非同期クリップボードAPIを使用してクリップボードに書き込みます。 <body> <button type="button" onclick="testClipboard();"> Test Clipboard </button> </body> function testClipboard() { navigator.clipboard.writeText("Clipboard API Test").then( v => alert("Success"), e => alert("Fail\n" + e)); } これは、ChromeとFirefox、デスクトップとモバイルの両方で機能します。ただし、Android Webviewでは次のエラーがスローされます。 NotAllowError: Write permission denied. WebChromeClient.onPermissionRequest()権限を付与するためにオーバーライドする必要があると考えましたが、不思議なonPermissionRequest()ことに呼び出されていないようで、同じエラーがまだスローされます。 public class WebChromeController extends WebChromeClient { @Override public void onPermissionRequest(PermissionRequest request) { Log.d("myTag", "Permission request"); Log.d("myTag", request.getResources().toString()); request.grant(request.getResources()); } …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.