我正在使用Android和Phonegap,目前我遇到了一个简单的问题.我需要将一个webViewClient设置到PhoneGap webView,以便捕获已完成页面的URL并使用它.
这是代码:
public class PhoneGapTest extends DroidGap {
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
super.setBooleanProperty("loadInWebView", true);
super.clearCache();
super.keepRunning = false;
super.loadUrl("file:///android_asset/www/index.html");
super.appView.setWebViewClient(new WebViewClient(){
@Override
public void onPageStarted(WebView view, String url, Bitmap bitmap) {
Log.i("TEST", "onPageStarted: " + url);
}
@Override
public void onPageFinished(WebView view, String url) {
Log.i("TEST", "onPageFinished: " + url);
}
});
}
Run Code Online (Sandbox Code Playgroud)
该代码似乎不起作用,页面永远不会加载,我得到一个TIMEOUT ERROR,但如果我删除"setWebViewClient"部分页面加载完美.
我看到有一个类CordovaWebViewClient,我是否必须使用它而不是WebViewClient?我在网上找到了这种方式:
this.appView.setWebViewClient(new CordovaWebViewClient(this){
@Override
public boolean shouldOverrideUrlLoading(final WebView view, String url) {
Log.i("BugTest", "shouldOverrideUrlLoading: " + url);
return true;
}
@Override …Run Code Online (Sandbox Code Playgroud) 我有一个应用程序下载PDF文件并将其与MODE_PRIVATE(出于安全目的)一起存储在应用程序的内部存储器中:
FileOutputStream fos = getApplicationContext().openFileOutput(LOCAL_FILE_NAME, Context.MODE_PRIVATE);
InputStream inputStream = entity.getContent();
byte[] buffer = new byte[1024];
int bufferLength = 0;
while((bufferLength = inputStream.read(buffer)) > 0) {
fos.write(buffer, 0, bufferLength);
}
fos.close();
Run Code Online (Sandbox Code Playgroud)
如何打开并显示下载的PDF文件?我一直在StackOverflow中搜索,我还没有找到明确的解决方案.
似乎问题是Android没有打开PDF文件的原生支持,所以我认为有两种选择:
使用一些外部库来显示PDF文件.有什么效果很好吗?
启动Intent以显示PDF文件,但似乎存储为MODE_PRIVATE的文件无法由外部Apps打开.我找到了一些解决方案,将文件复制到外部存储器,然后启动Intent,但这个过程打破了MODE_PRIVATE选项的安全性目的,对吧?
谢谢阅读