美文网首页
android本地访问krpano全景注意事项

android本地访问krpano全景注意事项

作者: 小宋敲码 | 来源:发表于2017-07-31 15:27 被阅读33次

公司有几个已经上线的全景的项目,前几天领导对我说需要将其打包成apk,刚开始听到这个需求我是一脸问号

 打包apk,全景不是通过URL访问的吗??然后在深入了解需求,哦原来是离线版。

做项目,首先就是思路要清晰。我一想不就是全景吗,先将资源导入assets文件下,然后用webView访问一下,听起来很简单、做起来却又有不少坑,下面总结一下

首先,全景是用krpano做的,当我简单的用

webView.loadUrl("file:///android_asset/www/index.html");

做访问的时候,第一个错误来了:

不过这个错误也好处理:

设置WebView是否允许执行JavaScript脚本

webSetting.setJavaScriptEnabled(true);

webSetting.setJavaScriptCanOpenWindowsAutomatically(true);

然后第二个错误来了:

当他刚刚出来的时候,我不小心点击了他给我的提示,然后我的思路就彻底被带偏了,因为krpano的提示是本地访问目前只支持 Firefox,这不科学。于是我花了大把时间去看krpano官网的文档,唉都是泪,我差点就没把FirefoxAndroid源码弄下来做二次开发了,因为快下班了,我就回去睡了一觉,然后我第二天在看BUG的时候,我注意到了、BUG的大致意思是浏览器不让我访问本地的文件,不让我我访问本地文件!!这时候我突然想到了一个webSetting的方法:

  webSetting.setAllowFileAccessFromFileURLs(true);          是否允许运行在一个URL环境(the context of a file scheme URL)中的JavaScript访问来自其他URL环境的内容,为了保证安全,应该不允许。

 不让我访问,那么让它可以访问不就好了。

除了这个还有一个注意的地方:进入VR模式的时候按钮事件都触发不了这个时候点击 VR setup,直接SAVE一下就好了,这个现在还不知道为什么,有知道是什么原因的留言给我一下,谢谢了

下面是webiew的代码:

public class WebActivity extends AppCompatActivity {

private static final String TAG = "WebActivity";

WebView webView;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

getWindow().setFormat(PixelFormat.TRANSLUCENT);

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,

WindowManager.LayoutParams.FLAG_FULLSCREEN);//设置全屏

setContentView(R.layout.activity_web);

webView = (WebView) findViewById(R.id.web_web);

initWebViewSettings();

webView.loadUrl("file:///android_asset/www/index.html");

}

private void initWebViewSettings() {

WebSettings webSetting = webView.getSettings();

webSetting.setJavaScriptEnabled(true);

webSetting.setJavaScriptCanOpenWindowsAutomatically(true);

webSetting.setPluginState(WebSettings.PluginState.ON);

webSetting.setAllowFileAccess(true);

webSetting.setNeedInitialFocus(true);

webSetting.setLoadsImagesAutomatically(true);

webSetting.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS);

webSetting.setSupportZoom(true);

webSetting.setBuiltInZoomControls(true);

webSetting.setUseWideViewPort(true);

webSetting.setSupportMultipleWindows(true);

webSetting.setLoadWithOverviewMode(true);

webSetting.setAppCacheEnabled(true);

webSetting.setDatabaseEnabled(true);

webSetting.setDomStorageEnabled(true);

webSetting.setGeolocationEnabled(true);

webSetting.setAppCacheMaxSize(Long.MAX_VALUE);

webSetting.setPluginState(WebSettings.PluginState.ON_DEMAND);

webSetting.setRenderPriority(WebSettings.RenderPriority.HIGH);

webSetting.setCacheMode(WebSettings.LOAD_NO_CACHE);

//新加的

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {

webSetting.setAllowUniversalAccessFromFileURLs(true);

}

webSetting.setAllowFileAccessFromFileURLs(true);

webSetting.setAllowUniversalAccessFromFileURLs(true);

}

}

相关文章

  • android本地访问krpano全景注意事项

    公司有几个已经上线的全景的项目,前几天领导对我说需要将其打包成apk,刚开始听到这个需求我是一脸问号 打包apk,...

  • krpano 全景图学习笔记

    krpano Krpano 可以方便快速的构建出全景图或全景视频(demo) 目录 Krpano DropletM...

  • krpano 720云 WKWebView加载本地html

    之前项目加载全景图片用的720云全景和krpano,生成后下载到本地用UIWebView加载,今天看到了苹果禁止了...

  • krpano全景图

    本文介绍了使用krpano制作全景图的一些基础知识,krpano可以在浏览器上实现全景图效果,支持flash和HT...

  • flutter学习笔记(二)

    本地访问-MethodChannel 本地访问是指跨平台的解决方案,有访问本地android或者ios资源的能力,...

  • Krpano 无缝Hotspot制作解析

    Krpano的官方示例里面有一个Example:关于如何从全景中提取并制作无缝嵌入全景展示的Hotspot的方法:...

  • 部分Android手机无法加载Krpano的问题

    krpano在Android手机上使用WebGL来做krpano viewer的渲染。 比如手头的一台OPPO R...

  • KRPano 小结 全景图制作(一)

    近期 公司有了全景图片的需求 这里仅记录自己学习KRPano的过程和经历 勿催勿赶 慢慢完善 一 什么是全景图 ...

  • ThinkPHP3.2+Krpano实现全景图

    为了实现全立体的3D全景图效果,我们采用了Krpano软件将普通鱼眼图片渲染为720°全景图。 首先下载软件Krp...

  • 基于krpano全景场馆系统

    项目起因 因本人从事三维开发已久,基于U3D开发的时间比较长,遇到了一些问题:例如模型制作周期长,部分插件不完善问...

网友评论

      本文标题:android本地访问krpano全景注意事项

      本文链接:https://www.haomeiwen.com/subject/yaqrlxtx.html